0%

Jenkins运行pytest selenium

说明

  • 这篇文章说明了如何搭建分布式测试流程,这次主要介绍把代码放到服务器上,用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
2
3
yum install epel-release
yum install java-11-openjdk-devel ##如果有装jdk8以上可跳过
yum install jenkins
  • 如果要修改端口,到这里修改不会生效的:vim /etc/sysconfig/jenkins

  • 正确的修改方式是在这个路径下

1
2
3
4
vim /usr/lib/systemd/system/jenkins.service

# 修改为想要的端口
Environment="JENKINS_PORT=5444"
  • 修改好路径后,重新加载服务
1
2
systemctl daemon-reload
systemctl restart jenkins
  • 如何知道自己的路径?用下面的命令就能查到
1
2
3
4
5
6
7
8
9
root@VM-24-13-centos jenkins]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2022-03-29 15:25:17 CST; 10min ago
Main PID: 23668 (java)
Tasks: 37
Memory: 269.3M
CGroup: /system.slice/jenkins.service
└─23668 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=544..
  • 用浏览器打开访问地址

image-20220329153925727

  • 页面会出现类似于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>
  • 检查jenkins配置配置文件,将执行用户改成root,不然后面可能出现执行shell没有权限

    1
    2
    3
    4
    vim /etc/sysconfig/jenkins # 编辑文件
    JENKINS_USER="root" # 改成root

    service jenkins restart
  • 找到密码文件后,拷贝输入到浏览器中登录成功

1
vi /var/lib/jenkins/secrets/initialAdminPassword # 得到密码
  • 先默认不选择插件

image-20220329155214241

image-20220329155307321

  • 把测试代码上传到服务器,也可以采用使用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 是为了解决构建失败的问题

image-20220330100642967

  • 构建后操作,使用Achive the artifacts即可,测试报告的路径记得要对应

image-20220330100856448

构建运行

image-20220330101017680

查看html报告,样式丢失了

image-20220329180732531

  • 在jenkins->系统管理->脚本命令行,输入以下命令执行就可以了
1
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

image-20220329180858248

  • 打开html界面后,刷新

image-20220330101618078

  • 但是这样重启后会失效,永久解决方案是安装插件:Startup TriggerGroovy 插件

  • 在Job配置页面, 在构建触发器的时候勾选:Build when job nodes start

image-20220330102008961

  • 在Job配置页面,增加构建步骤Execute system Groovy script,脚本输入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

image-20220330102150623