当前位置: 首页 » 政策法规 » 工程师园地 » 正文

探索人工智能产品的测试方法


  来源: 仪商网 时间:2018-06-19 编辑:思扬
分享到:



首先说一下我们都用容器做什么。主要三大类,第一种是诸如testlink,jenkins这种基础服务。第二种是产品的测试环境,这是占比最多的。然后就是我们的测试执行机器了。例如UI自动化,我们采取的是分别将selenium hub和node docker化的做法。如下图:




当UI自动化的case增多的时候,分布式运行往往是最好的解决方案。 目前我们通过这种方式容器化了20个浏览器进行并发测试。这些镜像都有官方的版本,使用起来还是蛮方面的。
然后说一下比较关键的网络解决方案,我们从单机到集群,中途历经了集中网络模型的变化。从一开始的端口映射,到利用路由规则给容器分配真实的ip,再到给每个容器在DHCP和DNS服务器上注册和续租。到最后我们演进出了下面这个k8s的网络模型。



我们知道每个docker宿主机都会自己维护一个私有网络。如果想让容器跨主机通讯或者外部访问容器。一般就是通过三种方式: 端口映射,路由规则以及overlay网络。我们选择在k8s中引入的overlay网络是weave,以解决夸主机通信问题。安装kube-dns实现服务发现。之后为了能让外部访问容器服务, 使用了k8s提供的ingress机制来实现。这个ingress网络其实就是在集群中启动一个容器,这个容器既能访问容器网络的同是还监听了宿主机的80端口。容器里是一个nginx,它会负责帮忙转发请求。nginx负责转发的有servicename和path,这里我们是无法使用路径进行转发的。所以我们在公司内部的DNS上做了泛域名解析。所有testenv为后缀的域名都会解析成集群的master节点的ip。这样我们的请求就能命中nginx中固定的servicename并做转发了。通过这种机制我们就可以很方面的访问容器提供的服务。当然ingress的缺点是暂时还无法做4层转发。如果要访问4层协议的服务暂时还是只能暴露node port。

我们这个测试环境的管理平台主要的架构是这样的:



集群中所有的镜像都过公司内部搭建的镜像仓库进行共享,我们在集群之上安装了各种服务来满足测试环境的需要。例如使用NFS做数据持久化,Heapster+Grafana+InfluxDB做性能监控,kube-DNS做服务发现,dashboard提供web管理界面,weave做集群网络,ingress做服务的转发。并且我们在这个整体上针对k8s的APIserver做了一层cli的封装。我们尝试过脚本管理,web服务管理,但是发现大家对这些方式的接受度都不高。我们面对的大多数都是一帮做梦都在写代码的人,所以我们换做提供一个cli的方式可以让使用者更灵活来定制自己需要的服务。通过这种形式,我们在公司内部搭建了一个可以提供测试资源的私有云,配合jenkins我们可以很方便的一键部署我们需要的环境并执行UT,接口,UI自动化测试等等,并提供一个详细的测试报告。下面是我们的部署一个环境后所提供的测试报告。



关键词:人工智能 大数据 测试    浏览量:4163

声明:凡本网注明"来源:仪商网"的所有作品,版权均属于仪商网,未经本网授权不得转载、摘编使用。
经本网授权使用,并注明"来源:仪商网"。违反上述声明者,本网将追究其相关法律责任。
本网转载并注明自其它来源的作品,归原版权所有人所有。目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如有作品的内容、版权以及其它问题的,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
本网转载自其它媒体或授权刊载,如有作品内容、版权以及其它问题的,请联系我们。相关合作、投稿、转载授权等事宜,请联系本网。
QQ:2268148259、3050252122。


让制造业不缺测试测量工程师

最新发布
行业动态
政策法规
国际资讯
仪商专题
按分类浏览
Copyright © 2023- 861718.com All rights reserved 版权所有 ©广州德禄讯信息科技有限公司
本站转载或引用文章涉及版权问题请与我们联系。电话:020-34224268 传真: 020-34113782

粤公网安备 44010502000033号

粤ICP备16022018号-4