说明
- 这篇文章说明了如何搭建分布式测试流程,这次主要介绍把代码放到服务器上,用
Jenkins
来运行 - 本次服务器为某云服务器,centos7 64
Jenkins 环境搭建
- 下载镜像仓库
1 | wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate |
- 下载
Jenkins.io.key
1 | rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key |
- yum下载安装依赖和jenkins
1 | yum install epel-release |
如果要修改端口,到这里修改不会生效的:
vim /etc/sysconfig/jenkins
正确的修改方式是在这个路径下
1 | vim /usr/lib/systemd/system/jenkins.service |
- 修改好路径后,重新加载服务
1 | systemctl daemon-reload |
- 如何知道自己的路径?用下面的命令就能查到
1 | root@VM-24-13-centos jenkins]# systemctl status jenkins |
- 用浏览器打开访问地址
页面会出现类似于
Please wait while Jenkins is getting ready to work ...
,等待一会儿后,就自动会打开如上面的输入密码的界面,- 这里我没有实践。有的博客说一直停留在无法please wait界面,可以要修改配置文件需要进入
/var/lib/jenkins/
目录(通过rpm方式安装的jenkins是这个目录)下hudson.model.UpdateCenter.xml
1
2
3将<url>https://updates.jenkins.io/update-center.json</url>
换成
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>- 这里我没有实践。有的博客说一直停留在无法please wait界面,可以要修改配置文件需要进入
检查jenkins配置配置文件,将执行用户改成
root
,不然后面可能出现执行shell没有权限1
2
3
4vim /etc/sysconfig/jenkins # 编辑文件
JENKINS_USER="root" # 改成root
service jenkins restart找到密码文件后,拷贝输入到浏览器中登录成功
1 | vi /var/lib/jenkins/secrets/initialAdminPassword # 得到密码 |
- 先默认不选择插件
把测试代码上传到服务器,也可以采用使用Jenkins拉取git的方式,中途测试中
jenkins
出现无权限问题,可以修改目录权限:chmod -R 777 auto_web_ui/
HTML Publisher
插件可以展示html报告,jenkins
本次不安装,用自带的Achive the artifacts
然后新建一个
job
,执行shell里面配置生成pytest
命令,运行完成后在当前目录下生成一个report.html
报告,第一行的#!/bin/bash
和最后一行的echo 0
是为了解决构建失败的问题
- 构建后操作,使用
Achive the artifacts
即可,测试报告的路径记得要对应
构建运行
查看html报告,样式丢失了
- 在jenkins->系统管理->脚本命令行,输入以下命令执行就可以了
1 | System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","") |
- 打开html界面后,刷新
但是这样重启后会失效,永久解决方案是安装插件:
Startup Trigger
和Groovy
插件在Job配置页面, 在构建触发器的时候勾选:
Build when job nodes start
- 在Job配置页面,增加构建步骤
Execute system Groovy script
,脚本输入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")