持续集成 自动化测试平台设计分享

hello · 2016年05月04日 · 最后由 fent12345 回复于 2017年10月09日 · 3483 次阅读

1,为啥造轮子
社区帖子看有人分享测试集成系统时,下面总会有人会说,不是有既存的框架系统么,你为啥喜欢造轮子。
我想说的是,既存框架是满足了大众的需求,而每个公司,都有自己特有的业务需求,管理任务发布,功能测试用例,各个阶段 bug,开发任务,产品需求。接口测试,性能测试。测试产品管理等,而且造好的轮子也是开发测试的一个成绩,领导喜欢,上层喜欢。
2,写此帖目的
注册一段时间了,也从中学习到了不少东西。所以决定不做伸手党,分享一点自己的东西,抛砖引玉,跟大家交流一下,请大神们给予更多意见或者建议。
3,干货 -- 自动化测试平台设计分享

解释一下各个关系(图片自己简单画的,渣效果莫怪)

  1. 用户选择测试用例,现在浏览器,选择测试环境,请求调度平台去执行
  2. 调度平台查询空闲测试机
  3. 找到空闲测试机器去执行测试用例
  4. 查看测试机运行状态,查看测试结果
  5. 写入执行结果,更新测试状态
  6. 远程机器执行前自动更新代码,打包执行 4,平台目前的已经实现的功能
  7. 定时回归指定任务,支持回归用例的在线增删,回归时间的编辑。
  8. 管理功能测试用例,自动化测试用例。 3.各个阶段 bug 管理,跟踪
  9. 测试发布流程控制
  10. 测试产品在线创建
  11. 根据需求选择浏览器,测试环境,测试用例自由组合测试
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 53 条回复 时间 点赞

额。。。和 STF 的区别在哪儿。。另外 Android 和 iOS 都支持么?落地情况怎么样?

实际效果如何 实现到什么程度了 web app 都能吗

#1 楼 @monkey STF 我不知道是啥(脸红中。。。)我们这个重要的用户端,要完成功能测试者可以写功能测试用例,关联测试用例,Bug,以及上线发布控制。不单单给自动化测试用的。
Android 和 iOS 无线部门不愿意用我们的平台,,,他们目前只有一个人,,,,玩单机版,2000 多人的公司我也是醉了。

#2 楼 @wanxi3 实际效果是已经上线了,主站部门有 60 多个测试者用。App 考虑的是,在界面选择执行是 app(Android 和 iOS)还是 pc。目前因为无线不愿见接入,还没推开发这个功能。

#1 楼 @monkey STF 全称是什么,我研究一下。莫笑,我是刚入行的小白。

额。我没搞过移动端的东西。所以我问个无知的问题。 这个平台有什么功能? 我看我们服务端的人搞过自己的平台,但是都不支持持续集成。 我总觉得既然我都搞好持续集成了,全都自动化起来了。 还用平台手动触发什么么?

好奇現有的框架系统有哪些?
最近也正想加入平台系統

#7 楼 @ycwdaaaa 可以看看我上面的 stf,其实功能在我理解是一样的。

hello #11 · 2016年05月04日 Author

#7 楼 @ycwdaaaa 我们设计的有定时回归和手动按需回归两种模式。定时回归,不用多说了。手动按需回归就是,每个测试者按照自己负责的功能点去验证。选择他想要验证的点去任意组合测试用例在任意时间点去跑。

#11 楼 @success 类似 jenkins 这种工具都作的到啊

hello #13 · 2016年05月04日 Author

#12 楼 @ycwdaaaa jenkins 机器状态,测试报告界面化查看操作不太好弄吧。我们以前没做平台也是用 jenkins 做持续集成

hello #14 · 2016年05月04日 Author

#8 楼 @gigayaya 应该看公司需求什么样的吧。既存的可以看 monkey · 大神分享的 。https://github.com/openstf/stf

#13 楼 @success 报告还好,我用的 java 么,reportng 的测试报告挺好的。直接配置一下就能看了。 如果你说的是测试机器的状态的话。这个我们以前确实没用 jenkins 搞。是直接写了 web 的监控网站。能去网站上看机器的状态。 机器挂掉的时候也会发邮件出来

#14 楼 @success 剛剛看了下,只有 Android 的
想尋找 iOS 的方案~

hello #17 · 2016年05月04日 Author

#15 楼 @ycwdaaaa 嗯,我们想再系统上不单单管理自动化以及,要一起管理任务发布,功能测试用例,各个阶段 bug,开发任务,产品需求。接口测试,性能测试。测试产品管理等。所以米有办法用 jenkins 做到这么多事情了。

#17 楼 @success 你这是要兼职 PMO 了哈哈哈,不过也挺好的.不少地方 QA 都管着 PMO 的东西

hello #19 · 2016年05月04日 Author

#16 楼 @gigayaya Android,iOS 的方案~我目前都用不到

hello #20 · 2016年05月04日 Author

#18 楼 @ycwdaaaa 没有,我也是刚入行的。以前做开发,没进公司时说是做自动化测试,进来后才知道还得玩这么多东西。。。。

#20 楼 @success 测试玩得东西就是杂

hello #22 · 2016年05月04日 Author

#21 楼 @ycwdaaaa 是啊,杂而不精,开发测试之痛,什么你都得会,然而很多你都没机会玩的很转,今天领导说让你做这个,明天又想让你做那个,测试开发需求天天改,你一会闲的时间都没。

#22 楼 @success 看样子我还算比较幸福。。。我做的没那么杂。。不过也算是不幸。。接触的东西太少

hello #24 · 2016年05月04日 Author

#23 楼 @ycwdaaaa 以前做 java 的。现在每天做 php 都是泪。。。

#24 楼 @success 干吗要换成 php。。。。

hello #26 · 2016年05月04日 Author

要在一个开源的 php 系统上做二次开发,因为公司以前部分东西在上面管理。如果一切都 java 来实现,耗时耗金耗人公司不愿意出。

hello #27 · 2016年05月04日 Author

#25 楼 @ycwdaaaa 要在一个开源的 php 系统上做二次开发,因为公司以前部分东西在上面管理。如果一切都 java 来实现,耗时耗金耗人公司不愿意出。

#27 楼 @success 那还真是苦了你了

hello #29 · 2016年05月04日 Author

#28 楼 @ycwdaaaa 都想跳槽了。这个怎么匿名回复啊

#29 楼 @success 貌似法贴字的人不匿名的话,回帖的人是不能匿名的

hello #32 · 2016年05月04日 Author

#30 楼 @ycwdaaaa 嗯,貌似不支持匿名回复。

hello #32 · 2016年05月04日 Author

#30 楼 @ycwdaaaa 你目前都是用 jenkins 集成的么?

hello #33 · 2016年05月04日 Author

#8 楼 @gigayaya 你们 pc 端的不需要测试确认么?

#32 楼 @success 恩,不过我们用的比较轻,很少去装插件。 都是写脚本搞。

hello #35 · 2016年05月04日 Author

#34 楼 @ycwdaaaa 那挺好的,不用怎么折腾。

这个应该是自动化测试的一个平台吧,可以按需执行测试用例

不错,不错,思路很正确,服务端/客户端都可以使用这种方式,但侧重点要不同,服务端要注重动态部署和服务器的动态调配,客户端要考虑设备的机器资源利用率情况和设备的稳定性,比如说设备挂了怎么办,同台设备每次只能一个 job 在 build 等。

hello #38 · 2016年05月04日 Author

#36 楼 @luis 对的,设计初衷也是任何人都灵活的随时随意去执行用例查看测试报告,分析测试结果。

hello #39 · 2016年05月04日 Author

#37 楼 @qiangf1213 嗯,动态部署和服务器的动态调配都有考虑的,同台设备每次只能一个 job 在 build 由调度平台控制。设备挂了有重启机制,用户可以在界面上去重启,中断远程测试机器的服务,上图没有表示出来。

能理解楼主的意思,但这个图感觉太简洁了,好多东西应该都没画出来。

hello #41 · 2016年05月05日 Author

#40 楼 @chenhengjie123 恩恩,这个只画了平台大致的三大模块以及 DB 的交互逻辑,其余的功能点没有表示出来。

DB 和 测试机根本不应该有交互,

hello #43 · 2016年05月05日 Author

#42 楼 @dongdong 测试状态怎么管理,同台设备每次只能一个 job 在 build 怎么保证,任务队列怎么去做?报告数据不写入数据库,怎么通过界面怎么查看?不交互不太好吧

#43 楼 @success 平台提供接口

#43 楼 @success 尽量使用单向和单流程解决问题

hello #46 · 2016年05月05日 Author

#44 楼 @dongdong 这个是我们自己做的平台,所有没有接口可以调用,只能按照这样做了啊。

hello #48 · 2016年05月05日 Author

#47 楼 @dongdong 你发的这个太强大了,但是我们测试开发没有几个人,而且技术参差不齐,现在做不到那么复杂的,实现不了不和数据库交互。

#47 楼 @dongdong 对外开放平台可以怎么做,对内没有必要,业内无线机房的搭建和思路基本上都是这样

#49 楼 @qiangf1213 就是准备对外咯

hello #51 · 2016年05月05日 Author

#49 楼 @qiangf1213 我们这个是 pc 的,无线部门他们不愿意现在接入我们平台,他们觉得他们现在一人一手机测试挺好

hello #52 · 2016年05月05日 Author

#50 楼 @dongdong 这个图,提供了无线接入的一个方向,不错的。

楼主,我现在也要做个用例调度执行的平台,请问你这个平台是全新自己开发还是二次开发?
可否介绍下如何实现其运行机制?谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册