新手区 利用 jenkins 关联 Job 方式结合 RobotFramework 完善测试 Setup 以及 Teardown 操作

terrychow · 2016年06月09日 · 最后由 回复于 2018年11月15日 · 3029 次阅读
本帖已被设为精华帖!

利用jenkins关联Job方式完善RobotFramework测试Setup以及Teardown后操作

1.前言

本人还有不到一个月就正式参加工作满一年,在这一年收获最大的是利用工作中的机会学会了基本的自动化测试,具体的就是利用jenkins+RobotFramework+Selenium的方式实现了项目Web端的自动化测试,其实在这一过程中没有得到什么具体的指导,都是平时游览于各大测试论坛慢慢学习积累下来的,所以可能我说的东西很多大牛都会觉得小儿科,我就当写一下总结,这是我第一次发帖,之前都只是看别人的帖子,反正都什么不足的地方欢迎各路大神喷我,好,进入正题吧

2.Jekins关联Job方式

这个都说到烂了,就不再多说了,就说我遇到的问题,我这里自动化测试其实有几个过程,其实是走持续集成的方法(可能只是看起来而已),就是从收到开发代码build成功的hook开始,触发测试环境获取新的安装包部署,检查部署是否成功,执行自动化测试,输出测试报告发送邮件或其他通知方式,过程大概是这样

(1)说明一下那个测试通知和邮件报告的,因为有一个通知方式是直接接入到我们项目的(通讯工具),所以这里就补充了一下,说到这里有人会想到,自动化测试这一块可以直接放到RobotFramework(以下简称RF),但更新测试环境和发送通知和邮件测试报告这些模块如果直接放到RF的Setup和Teardown显然会有些鸡肋,毕竟想让自动化测试的执行过程更加独立,而且更好地控制整个流程,一开始我也想不到什么好方法,后面某天突然脑袋一闪想起Jenkins是有关联Job的功能,一切解决了,后面就开始我上图的设计了

(2)Jenkins的Job可以如下图这么分

a、第一执行的Job是更新测试版本的Job,这个Job是通过收到开发代码build成功的通知之后自动触发的,具体怎么触发用过jenkins的小伙伴都应该知道,就不多说了,获取了新包之后就会更新部署测试环境,在此之前测试环境会清理一遍环境,更新完成之后检查是否更新版本成功,目前我自己设置的检查点可能还有点简单,看新包是否有成功部署到测试环境,前端方面看是否能正常打开页面登录,后端方面调登录接口是否能正常登录返回正确数据,都通过的话,更新就算成功了,更新测试版本的Job构建为stable后就会触发执行自动化用例,如果更新失败就会发送更新失败的通知到相应负责人(一般就是我了=。=),然后就去检查测试环境情况,把环境等问题都弄ok了,再手工触发一下,所以要执行自动化测试的前提是测试环境新版本可以用啊,都不能用还怎么测呢

b、执行完自动化测试用例后,如果出现非Stable的情况,就会触发失败用例重跑的Job,至于RF的失败用例重跑的方法,之前也有很多人问,在这里就说一下,在本地操作是这样的

要结合Jenkins的话只要能拿到对应的output.xml就能做到了,这里就不多说了,自己摸索试试,然后就可以将失败的用例重跑,一般也就重跑一次,都完成之后就触发发送测试完成通知的Job,一般是执行用例的JOB为Stable或重跑用例的JOB完成后关联自动触发,主要是邮件测试报告和消息通知,说到邮件测试报告,RF的测试报告有个坑就是报告源码里有JS,邮件都不会支持JS的话,除非你想来XSS,所以只能用别的方法了,说到这里先展示一下我自己做的邮件测试报告

  • 测试通过(第一期)

  • 测试失败的(今天优化了一下)

这个测试报告分4个模板,版本信息,测试基用例统计,跳转链接和失败的测试用例展示,版本信息是直接去测试环境取的,测试用例统计是通过调jenkins的api获得的,怎么获得,来到页面点一下这个你就明白了

在点点就会看到

这样子测试用例统计就能做了,然后第三模块就是那几个跳转到jenkins看测试报告和测试日志,最后的失败测试用例的获取是通过python爬虫实现的,就是把job/3/robot下fail test那里爬下来,自己作一下优化展示就好,就这样,邮件的一个比较基本的测试报告也完成了,整个自动化测试的过程大概就是这样子,现在在我们项目中每天都会跑一次来过每个dev版本的核心功能,这样一来把自动化测试过程的Setup和Teardown都很好地分离开来,也方便以后地扩展和维护

3.结束语
其实我这一年学习的还不只是这个,自己还学了一下性能测试等,在测试的过程中自学了python语言,基本上下班回家每个晚上都是呆在电脑面前看各大论坛的大神的帖子,或者一些学习的资源平台来学习的,也正好工作方面有很多机会让我把学到的直接投入到工作中使用,得以实践和巩固,但作为职场上的新人,自己还是需要更虚心踏实地学习,不能一步登天,也不要认为自己目前学多了点懂多了点就很厉害,比你厉害的人还多得很,学海无涯苦作舟,在这里愿结识更多的大牛来指教指教我这一后辈,我也很想和同辈的小伙伴一起共同交流学习,一起进步,反正就是希望能在测试这一职业上发挥自己的价值,实现自己,好吧,欢迎大家指导和给出您宝贵的建议,谢谢了

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 11 条回复 时间 点赞

佩服!!!羡慕!!!刚开始进入行业就学习这么深

—— 来自TesterHome官方 安卓客户端

#1楼 @lamianxiaodian 这些也是逼出来的,上级要求做,自己也想做得尽善尽美一点,一开始做都是在挖坑,这些坑都填了3个多月才填完

—— 来自TesterHome官方 安卓客户端

点个赞

terrychow [该话题已被删除] 中提及了此贴 06月25日 01:37
恒温 将本帖设为了精华贴 06月26日 21:11
8楼 已删除
terrychow 对 Jenkins+ANT+Jmeter 接口测试的实践 中提及了此贴 11月21日 10:04

我也是被逼着做,现在做了一个多月,robot里的用例写了不少,就差搭建jenkins持续集成了。但现在出现个小问题,jenkins登录显示登录无效

yangqinyuan 回复

登錄無效,是怎麼樣的無效,這些都沒說明清楚,別人很難幫到你的

您好~
我想请教下,你的邮件发送报告,内容模板是在email-ext插件的邮件内容中配的麽?
如果是的话,是用HTML?这个邮件内容好像不支持python写,还是你用的Jelly或者Groovy脚本?

浅浅蓝 回复

自己用Python另写模板的,不是用jenkins插件

terrychow 回复

噢噢 好的 我研究下 谢谢。🎁 🎁 🎁

terrychow 历历在目的 2年 测试生活 中提及了此贴 06月10日 22:28

更新测试版本,更新判定如果成功执行自动化测试,这个在jenkins怎么设置呢

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