Jenkins接MySQL_Jenkins+Postman+Newma+Xmysql之API全自动化测试

第一章 前期准备:各种安装配置介绍

①Postman安装及使用

②Newman 安装及使用

③Xmysql 安装及使用

④Jenkins安装及配置

1、postman 安装及使用

1.1、postman安装

1.2、postman使用

1.2.1、postman基础功能

3b4f92eb8cb23f600f2d7e1dbeeb8685.png

1.2.2、常用断言

①验证本次请求的状态码,即验证本次请求是否能调通,或预设响应状态

tests["Status code is 200"] = responseCode.code === 200;

tests["Status code is 201"] = responseCode.code === 201;

②验证返回相应中的字段值

var jsonData = JSON.parse(responseBody);

tests["Check respose value err_code"] = jsonData.err_code === 0;

③响应时间小于200ms

tests[‘Response time is less than 200ms‘] = responseTime < 200;

④response包含内容

tests["Body matches string"] =responseBody.has("string_you_want_to_search");

⑤response等于预期内容

tests["Body is correct"] = responseBody === "response_body_string";

2、newman的安装及使用

2.1、newman的安装

newman是基于node.js测试框架,安装newman需要先安装node.js

2.1.1、安装node.js

ee043241dd5850d7ec3f2be58373df70.png

双击安装包,一路next直到finish,安装完成后,验证安装:

effa42ba66ac3c887531540ad07ab799.png

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

2.1.2、使用npm安装newman

npm install -g newman

b3ee3995b374336f657653efff8e4cfa.png

2.2、newman的使用

newman run C:\Users\Administrator\Desktop\postman_test\AutoRyline_api.postman_collection.json --reporters cli,html,json,junit --reporter-json-export C:\Users\Administrator\Desktop\postman_test\jsonOut.json --reporter-junit-export C:\Users\Administrator\Desktop\postman_test\xmlOut.xml --reporter-html-export C:\Users\Administrator\Desktop\postman_test\htmlOut.html

3、xmysql安装及使用

3.1、xmysql安装

npm安装:npm install -g xmysql

输入命令:xmysql,即可看到用法

ce8767cba21f604feff0f346a0311dc1.png

3.2、xmysql的使用

3.2.1、启动xmysql,连接数据库,命令:xmysql -h host_name -u user_name -p user_password -d database_name

d2f54388fefb2b3b84a77c5a26c7b0f3.png

3.2.2、通过postman连接使用:

启动服务之后,即可通过http://localhost:3000/api/ 访问 xmysql 自动生成的 Rest API

3.2.3、通过xmysql生成的API对数据库进行增删改查:

查询某表数据,get请求:http://localhost:3000/api/table_name:

7c1a3b9be3c1c7b5d98392f428d5c270.png

ec560b0761a06422f141fffa2e3f017b.png

插入数据,post请求:http://localhost:3000/api/table_name:

0020d8f8be53eb0c4b622c5eff68f398.png

4、Jenkins的安装及使用

4.1、Jenkins安装

官网下载:https://jenkins.io/download/,然后一路next,安装提示即可完成操作。打开http://localhost:8080即可访问。

be60da45e20f284b027db94355534d4e.png

4.2、Jenkins配置

9ceeb79804e58b88812cfce70dee76ce.png

b819d9b7d9e770c546c9bc9b100b343f.png

9ac253a188c31ed94879d748b29645bf.png

eb4c4489a6bb4b0b1c30d411b53c8be3.png

9ee30608ac5a5b838655ecb846088d13.png

第二章:接口自动化

1、Jenkins+postman+newman之API全自动化测试

1.1、导出postman测试用例:

postman导出整个collection内的接口(json格式),我是导出放到C:\Users\Administrator\Desktop\postman_test

1.2、项目配置:

1.2.1、新建构建xmysql项目的job(添加批处理命令:xmysql服务启动命令)

1.2.2、新建构建Fengxia_AutoRylineApi项目的job(添加批处理命令,再添加构建后发送邮件:调用newman执行测试用例)

1.2.3、新建构建MultiJob Project AutoRyline_API项目的job

①构建触发器→触发远程构建、定时构建

②构建环境→设置任务超时 超过限定时间停止任务

③Jenkins多个jobs设置(把前面两个项目关联起来,先执行xmysql,后执行Fengxia_AutoRylineApi)

1.3、构建

点击立即构建MultiJob Project AutoRyline_API,构建完成后会收到测试报告的邮件

2、Jenkins执行的批处理命令一览

2.1、newman批处理命令:

C:\Users\Administrator\AppData\Roaming\npm\newman run C:\Users\Administrator\Desktop\postman_test\AutoRyline_api.postman_collection.json --reporters cli,html,json,junit --reporter-json-export C:\Users\Administrator\Desktop\postman_test\jsonOut.json --reporter-junit-export C:\Users\Administrator\Desktop\postman_test\xmlOut.xml --reporter-html-export C:\Users\Administrator\Desktop\postman_test\htmlOut.html

2.2、xmysql批处理命令:

C:\Users\Administrator\AppData\Roaming\npm\xmysql -h 172.*.*.142 -u user -p ***cmCx72sSXZ -d atm

2.3、newman、xmysql具体路径查找方法:

9d9772adfc482e0b42810b7de8b3048c.png

3、邮件发送配置(附带报告)

10d5dcf90e616aea96bf4a398d4e0820.png

第三章:后续-乱码解决、远程触发构建、多job、定时任务

1、Jenkins解决控制台输出乱码

需要更改三个地方

1.1、Jenkins系统设置

点击左侧“系统管理”——右侧选择“系统设置”——“全局属性”,选择第一项:Environment variables,键值对列表,点击增加:

键:LANG

值:zh.CH.UTF-8 点击保存,见下图:

dc6a23f2f26057f715f1422fbcf5e8f9.png

1.2、Jenkins.xml文件修改

在Jenkins安装目录下找到jenkins.xml文件

找到 ……,在中间添加-Difile.encoding=utf-8 ,见下图:

8079b08641064bf412e1993fadb56c71.png

1.3、设置jenkins所在服务器环境变量,右键我的电脑→属性→高级系统设置→环境变量,添加变量JAVA_TOOL_OPTIONS

6e7a0764119573dc31de3e7e5c1e8cbc.png

1.4、最后重启jenkins

dos环境下输入cmd;

方法一:停止jenkins:net stopjenkins

启动jenkins:net startjenkins

如果该方法不能重启,使用方法二;

方法二:直接运行services.msc调起系统“服务”,找到jenkins手动重新启动

1d31fa731c2cfccf4665bb2392de35b9.png

win+R ,然后输入services.msc

f81d3f0cb25afafe09ac3a920b89ecb4.png

2、Jenkins远程触发构建job

搭建好了jenkins环境,并且创建好了Job后,如何远程触发构建而不需要登录Jenkins管理系统。

很简单的几步就能搞定。步骤如下:

2.1、选择“触发远程构建”->输入身份验证令牌“12345”

2.2、组合url地址(job名称以英文形式命名)

http://jenkins地址/job/job名称/build??token=口令&cause=书写构建原因 ,如下是我的地址:

http://localhost:8080/job/AutoRyline_API/build??token=12345

2.3、发送构建请求,在浏览器中访问url

http://localhost:8080/job/AutoRyline_API/build??token=12345

2.4、请求后浏览器不会有反应,后台收到请求开始构建。

3、Jenkins多个项目构建顺序设置

使用jenkins中,当有多个jobs需要互相关联时,就需要设置jobs的上下游关联关系。比如job_A运行后触发job_B。

3.1、Build after other projects are built设置

7560d33fe9ffc52d4b32809987b193cc.png

(1)这里设置的为上游的jobs名称,比如在job_B填写的设置中填写了job_A,则会等待job_A运行完后,自动触发job_B运行

(2)可以设置多个,用逗号分开,比如在job_B填写的设置中填写了job_A,job_C,则会等待job_A,job_C运行完后,自动触发job_B运行

3.2、Build other projects

503c104b744e0b6ec7624fd0caf975e8.png

(1)在构建后操作中,添加一个操作步骤Build other projects,这里设置的就是下游的jobs运行,比如在job_B填写的设置中填写了job_A,则job_B运行完后,自动触发job_A运行

(2)当然这里也可以填写多个,形成了并行;比如在job_B填写的设置中填写了job_A,job_C,则ob_B运行完后,自动触发job_A,job_C一起运行

4、Jenkins多job设置(串行、并行)

4.1、jenkins-multijob-plugin

jenkins-multijob-plugin这个是插件。这个插件主要作用就是把多个jobs组装起来,形成持续集成。

82ab19d9212010de6d87e0d015f4ec61.png

4.2、新建jobs,选择MultiJob Project

0adc1a4a413f465e29dd218a559c95d5.png

4.3、进入job设置,在构建模块,新建构建步骤,选择MultiJob Phase

98230fc238c882637c5c366bad009823.png

5、Jenkins设置任务超时、超时停止任务

在使用jenkins进行自动编译、构建时有些任务可能由于网络或其他原因一直阻塞,导致该项目不能再次执行编译构建。我们希望在某些任务执行时间超过一定值时将其终止。

jenkins的”build timeout plugin”插件可以帮我们完成该任务。jenkins默认就已经安装了该插件,如果默认没有安装可在插件管理中搜索进行安装。

任务超时配置如下图:

b4300acceb637b09e79f3ab0ee37bb4a.png

6、Jenkins定时构建

6.1、配置定时任务

选中Job名称--配置—构建触发器—勾选“Build periodically”

2f42b760f5c2b67b89d19cda8e67fea1.png

如图中配置所示:该任务每天上午7点定时执行一次。

6.2、定时构建语法:

* * * * *

第一个*表示分钟,取值0~59

第二个*表示小时,取值0~23

第三个*表示一个月的第几天,取值1~31

第四个*表示第几月,取值1~12

第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

6.3、常用定时构建举例:

每隔5分钟构建一次

H/15 * * * *

每两小时构建一次

H H/2 * * *

每天早上10点定时构建一次

00 10 * * *

每天下午下班前定时构建一次

00 18 * * *

此致,谢谢。

特此声明:版权归凤凤同学所有。

28a09ed341f3270a24d54fbce9bfcdd3.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值