搭建接口自动化测试持续集成环境

一、在Jenkins上 添加机器节点

1.通常的情况下在我们的一个项目当中,项目会有多个分支系统,而我们不可能为每个分支系统都配置一个jenkins服务,这样既浪费资源,也增加构建部署的难度,为了解决这个问题jenkins给使用者提供了非常强大的分布式部署功能,也就是节点的管理,我们只需要在master节点配置好jenkins服务,通过指定slave节点来进行对应的系统进行部署就可以达到分布式部署系统管理,进入管理节点页面

搭建接口自动化测试持续集成环境

2.jenkins服务所在服务器为master节点,master负责分发任务给slave节点,这里展示了节点的部分信息

搭建接口自动化测试持续集成环境

3.新建节点,输入节点的名称,并且选中permanent agent,点击ok

搭建接口自动化测试持续集成环境

搭建接口自动化测试持续集成环境

4.节点创建成功后会自动跳转到配置页面

搭建接口自动化测试持续集成环境

名字:节点的名字
描述:说明这个节点的用途等
of executors:并发构建数量
远程工作目录:用于存放jenkins的工作空间的(10.3.254.158机器自动生成/home/jenkins/workspace,jenkins配置拉取的gitlab代码,会默认存到这里)

搭建接口自动化测试持续集成环境
标签:分配job会以标签的名称去分配
用法:节点的使用策略
启动方法:选择 Java web start

5.这时节点也配置好了,但是slave节点还是没有连接的状态,这时我们使用slave机器进入Jenkins的管理节点页面

搭建接口自动化测试持续集成环境

点击该节点,进入节点页面,可能出现这样的状态

搭建接口自动化测试持续集成环境

点击Go to security configuration screen and change it,然后将 TCP port for JNLP agents选择随机选取

然后进入控制面板,将防火墙关闭(不做描述,自行处理)
回到slave页面,这时页面出现launch 按钮

搭建接口自动化测试持续集成环境

点击launch ,这时会让我们下载一个文件,下载到我们的slave节点的远程工作目录就可以了

搭建接口自动化测试持续集成环境

如果添加机器节点是windows系统:
双击slave-agent,出现connected说明连接成功

搭建接口自动化测试持续集成环境

现在回到jenkins的管理节点页面,slave节点的❌已经没有了,说明连接成功

 

如果添加机器节点是Linux系统:
1)机器配置java环境
2)把下载的 agent.jar 和 slave-agent.jnlp 两个文件放在添加的机器的某个目录下面,然后用命令启动,命令后面加 & ,放在后台运行:

搭建接口自动化测试持续集成环境

回到节点列表,添加的节点没有叉了,就成功了

搭建接口自动化测试持续集成环境

二、创建job

1.点击新建,进入新建项目页面

搭建接口自动化测试持续集成环境

2.输入项目名称,选择构建一个*风格的软件项目(里面可以自己*进行配置,使用更加灵活),点击ok

搭建接口自动化测试持续集成环境

3.job里面创建2个构建时需要的变量

execute_code:项目执行的python入口执行文件,默认main.py

runenv:配置自动化测试用例运行环境,可选生产环境 or 预发布环境

搭建接口自动化测试持续集成环境

效果如下

搭建接口自动化测试持续集成环境

限制项目的运行节点(创建的job(项目)指定在标签是10.3.254.158的机器上运行)

源码管理:

选择git,复制需要clone的git仓库地址,Credentials填写gitlab的用户名/密码

job拉取的代码,默认保存到远程工作目录的workspace目录下面,如:/home/jenkins/workspace

搭建接口自动化测试持续集成环境

定时执行job,实现接口自动化定时巡检

搭建接口自动化测试持续集成环境

job的执行的shell操作命令

搭建接口自动化测试持续集成环境

1.需要python解析器,查找的库路径(sys.path)可以找到git_3weijia目录,因为python文件导入的库,都是以git_3weijia为开头查找,所以,在jenkins的工作目录workspace下面新建git_3weijia目录,启动jenkins的job任务,先把git_3weijia目录下面文件全部清空初始化,避免残留异常数据影响测试运行;

2.jenkins会默认在 /home/jenkins/workspace 目录下以job名称创建目录“test-企业工厂后台接口自动化测试”,gitlad代码存在这个目录下,由于,代码导入库的路径不是这个,需要把代码拷贝到git_3weijia目录下面,config文件包含一些cookie的隐私信息,一般是不会上传的git仓库的,所以本地上传到服务器workspace目录下面,再cp到对应项目目录下面(如果缺少这个,测试用例文件找不到config,会全部报错的);

3.因为开发的时候修改了utx库的源码,需要把utx的库更新,首先删除服务器已经存在的utx库,然后把gitlab里面的utx库拷贝到site-packages目录下面;

4.**虚拟环境,因为安装的库都在虚拟环境里面

5.因为第一步删除的git_3weijia目录的文件,会把之前后台运行的flak应用进程杀掉了,这里需要重启flask应用进程,由于,jenkins的job是主进程,如果job构建结束了,执行的命令也会结束,所以,需要加上BUILD_ID=DONTKILLME,告诉jenkins,不要杀掉这个命令的进程;

6.进入mian.py所在目录,执行main.py文件,传参 runenv 变量到main.py文件里面,根据不同的参数,让用例在生产/预发布不同的环境执行