今天在家宅了一天,总算把自动化这块搞得很清楚了。 自己用uiautomator2和pytest写了一个mobile的自动化框架。跑起来很顺手很丝滑。 报告是用allure展示的,但是allure一个缺点是本地打不开。 我将其集成到jenkins上。 本来很顺利的,但是报表不展示,一直显示空,我也去看了log,也尝试用了各种办法来解决,但是不理想。正当我要放弃的时候,灵光一闪,解决了。 看看我跑过的job, 你就知道很多事情,在一点小的地方,能坑你很久,如果不坚持,就看不到曙光。
安装allure.
这个简单,去官网下载一个包,解压,设置环境变量就可以了。
解压缩,定位到bin
目录下
将该路径添加到环境变量PATH
中
安装pytest-allure插件,运行:pip install allure-pytest
使用
代码语言:javascript复制运行测试用例:pytest --alluredir=/tmp/my_allure_results
直接打开测试报告:allure serve /tmp/my_allure_results 将会在默认浏览器中打开测试报告
或者生成测试报告:allure generate /tmp/my_allure_results -o /tmp/report --clean
打开测试报告:allure open -h 127.0.0.1 -p 8083 /tmp/report
安装jenkins.
这个也简单,去官网下载一个war包。用java -jar,扔进去就可以了。 一个小插曲,我忘记密码了。 忘记密码,有两个处理方式 。
方式一:重置密码
代码语言:javascript复制修改 JENKINS_HOME/users/usernamedir 目录下的config.xml 文件
注:usernamedir 就是你忘记密码对应的用户文件夹
如果是java -jar方式启动的,HOME目录位于/root/.jenkins
修改config.xml,找到 passwordHash部分,替换原有的hash值
把
#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
修改为
#jbcrypt:$2a$10$4NW.9hNVyltZlHzrNOOjlOgfGrGUkZEpBfhkaUrb7ODQKBVmKRcmK
后者是123456的hash值
重启Jenkins
/etc/init.d/jenkins restart
用最新的密码 111111 登录
方式二:取消密码
代码语言:javascript复制进入Jenkins主目录,备份config.xml
cp config.xml config.xml.bak
修改config.xml文件
找到关键词 useSecurity ,把后面的值 true 改为false
重启 Jenkins
/etc/init.d/jenkins restart
可以无账号和密码登录Jenkins
我用的是方法二,简单粗暴。
装插件
1.打开Jenkins,首页点击[Manage Jenkins]
2.选择[Manage Plugins] 去插件里搜allue,安装后重启就可以了。
Allure Commandline配置
1.jenkins配置页,选择全局工具配置[Global Tool Configuration]
2. 全局配置页下拉到最后一项,你会看到“Allure Commandline”项, 命名之后保存即可
新建job
Jenkins首页点击新建Job[New Item] 最开始我是这么配置的(错误示范)
构建后展示报告是这样配置(错误示范)
结果是报表里面一直是空,看log,一直出这句话:allure-results does not exists 看网上的教程,也没法解决。 最后想到了,jenkins的项目路径,跟实际项目的路径是有出入的。
于是这样配置了一下:
构建后配置:
将advance打开,report那块也要配置:
运行一下,就成功了。报表展开是这样的,我这里特意弄了一个失败截图的例子:
其实开始一直在项目的路径徘徊。就没有想过是job的名字,要加job的路径,文件是在job的workspace里保存的。 其实它已经举例子了,但是那个tagert不是很明确。 网上一搜,好多遇到这个问题的,还好我幸运地解决了。坑了我一个星期六的时间。