接口自动化测试Postman Newman Jenkins
目录
- 1、简介
- 2、安装部署
- 2.1、Postman
- 2.2、Newman
- 2.2.1、安装Node.js
- 2.2.2、安装Newman
- 2.3、Jenkins
- 2.3.1、安装JDK
- 2.3.2、安装Tomcat
- 2.3.3、安装Jenkins
- 3、Postman创建脚本
- 3.1、创建测试集合
- 3.2、创建环境变量
- 3.3、创建测试用例
- 3.4、导出脚本
- 4、Newman执行脚本
- 5、Jenkins持续集成
- 5.1、创建项目
- 5.2、执行项目
- 5.3、解决HTML报告显示不正常
1、简介
Postman可以做接口测试,简单易用很容易上手。但是由于项目的接口越来越多,每次执行都要手动点击,使得执行起来不是很灵活。
Newman是Postman的命令行工具,可执行Postman导出的.json脚本文件。虽然用命令就可以执行脚本,但无法指定某个时间段自动执行,还是要手动敲命令才可以,还是不够灵活。
Jenkins可实现自动化持续集成等操作。
所以本篇讲解采用Postman Newman Jenkins来实现接口自动化测试。
2、安装部署
在Windows环境(64位)下进行安装部署。
本篇接口请求链接使用moco生成。
如图所示:需要用到moco包和Json配置文件(已经配置完成)。
启动moco服务:
打开moco所在目录,鼠标双击启动moco服务.bat文件即可。
如图所示:moco服务开启,就可以使用接口请求链接了。
2.1、Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的工具。
Postman能够发送任何类型的HTTP请求(GET、HEAD、POST、PUT等),附带任何数量的参数和HTTP headers。支持不同的认证机制(basic、digest、OAuth),接收到的响应语法高亮(HTML、JSON或XML)。
Postman既可以以Chrome浏览器插件的形式存在,也可以是独立的应用程序存在。
官方网址:https://www.getpostman.com/
本篇使用的Postman为客户端版本,将下载完成的Postman默认安装即可。
2.2、Newman
Newman是Postman的命令行工具。它允许你毫不费力地直接从命令行运行和测试Postman集合。它构建时考虑到了可扩展性,因此你可以轻松地将其与持续集成服务器和构建系统进行集成。
官方网址:https://www.npmjs.com/package/newman
2.2.1、安装Node.js
要想运行Newman,需要先安装Node.js。
双击执行node-v10.13.0-x64.msi应用程序默认安装即可。
安装完成后,环境变量自动添加到系统里,直接打开命令行,输入node -v,提示以下信息表示Node.js安装成功。
由于新版的Node.js已经集成了npm,同样在命令行输入 npm -v, 来测试是否安装成功。
2.2.2、安装Newman
打开命令行,输入安装命令npm install -g newman
之后输入npm view newman version或者newman -v,可查看安装的版本号。
2.3、Jenkins
Jenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻。
Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。
官方网址:https://jenkins.io/
2.3.1、安装JDK
Jenkins所需环境为Java,所以需要先安装配置JDK。
2.3.1.1、安装
执行下载完成后的jdk-8u171-windows-x64.exe。
JDK安装路径默认安装即可,这里安装到D:Javajdk1.8.0_171目录下;
JRE安装路径默认安装即可,这里安装到D:Javajre1.8.0_171目录下;
之后直到安装完成。
2.3.1.2、配置环境变量
鼠标选中我的电脑右键,点击属性--->高级系统设置--->高级--->环境变量。
点击环境变量,系统变量里:
代码语言:javascript复制(1)点击新建
变量名填写 CLASSPATH
变量值填写 .;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar
代码语言:javascript复制(2)点击新建
变量名填写 JAVA_HOME
变量值填写 D:Javajdk1.8.0_171
代码语言:javascript复制(3)修改Path,点击编辑
在变量值最后添加 ;%JAVA_HOME%bin;%JAVA_HOME%jrebin
确定后,打开命令行,输入java -version,提示以下信息表示JDK环境变量配置成功。
2.3.2、安装Tomcat
由于下载的Jenkins格式为.war,所以需要安装配置Web服务器(Tomcat)。
2.3.2.1、安装
将已下载好的apache-tomcat-8.5.32-windows-x64.zip文件进行解压,例如:解压到D盘根目录下。
2.3.2.2、配置环境变量
鼠标选中我的电脑右键,点击属性--->高级系统配置--->高级--->环境变量。
点击环境变量,系统变量里:
代码语言:javascript复制(1)点击新建
变量名填写 CATALINA_BASE
变量值填写 D:apache-tomcat-8.5.32
代码语言:javascript复制(2)点击新建
变量名填写 CATALINA_HOME
变量值填写 D:apache-tomcat-8.5.32
代码语言:javascript复制(3)修改Path,点击编辑
在变量值最后添加 ;�TALINA_HOME%lib;�TALINA_HOME%bin
确定后,打开命令行,输入version,提示以下信息表示Tomcat环境变量配置成功。
2.3.2.3、修改服务端口
在默认情况下,Tomcat的端口是8080,但有时候端口会被占用,所以这时候我们需要修改端口。
打开Tomcat安装目录下的conf文件夹,里面有个server.xml文件,修改此文件里的port值。如图所示:将port值修改为8081,则访问的端口为8081。
2.3.2.4、解决内存溢出
当Jenkins部署在Tomcat里时,使用Jenkins很占资源,可能会使Tomcat出现内存溢出现象。
解决办法:
打开Tomcat安装目录下的bin文件夹,里面有个catalina.bat文件,修改此文件。
修改设置参数:
代码语言:javascript复制-Xms:初始堆内存大小;
-Xmx:最大堆内存大小,一般设置-Xms与-Xmx一样大小,根据应用类型和物理内存大小来决定二者的大小;
-Xmn或者-XX:NewSize:堆内存中年轻代的大小;
-XX:PermSize:永久代内存的初始大小;
-XX:MaxPermSize:永久代内存的最大值。
例如:根据Jenkins所在的服务器内存为8G为例,在catalina.bat文件第一行增加参数:
代码语言:javascript复制set JAVA_OPTS=-Xmx2560m -Xms2560m -Xmn1024m -XX:PermSize=1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m
如图所示:修改后的catalina.bat文件。
2.3.2.5、创建启动服务文件
打开Tomcat安装目录下的bin文件夹,里面有个startup.bat文件,直接双击运行,Tomcat服务就启动了。
但每次启动Tomcat都需要进入安装目录里执行文件,显得有些麻烦,所以创建启动服务快捷方式可以解决这个麻烦的操作。
在Tomcat安装目录里创建“启动Tomcat.bat”文件。
启动Tomcat.bat文件内容:
代码语言:javascript复制start cmd /c "cd �%&&cd bin&&startup.bat
选中启动Tomcat.bat文件鼠标右键,创建桌面快捷方式。
如图所示:启动Tomcat.bat快捷方式创建完成。
双击桌面此快捷方式,自动打开命令窗口,启动Tomcat服务完成。
访问地址:
http://localhost:8081/ 或者http://10.53.29.69:8081/(IP为10.53.29.69)
2.3.3、安装Jenkins
2.3.3.1、安装
将已下载好的jenkins.war文件拷贝到Tomcat安装目录下的webapps目录里。
双击运行启动Tomcat.bat文件。
访问地址:
http://localhost:8081/jenkins
或者 http://10.53.29.69:8081/jenkins(IP为10.53.29.69)
先进行解锁Jenkins,进行密码输入验证。
访问C:Usersadmin.jenkinssecrets目录下,打开initialAdminPassword文件,将密码输入到管理员密码输入框中,之后点击继续。
点击选择安装推荐的插件即可。
进行插件安装(由于国内网络问题,有的插件安装可能会失败,建议先FANQIANG,之后再安装插件)。
推荐插件安装完成后,创建管理员信息,之后点击保存并完成。
设置Jenkins URL,如图所示:
http://10.53.29.69:8081/jenkins(IP为10.53.29.69),之后点击保存并完成。
Jenkins安装已完成,点击开始使用Jenkins。
Jenkins启动完成。如图所示:登录后的界面。
2.3.3.2、解决中文乱码
当Jenkins部署在Tomcat里时,执行Jenkins,Jenkins控制台输出中文会显示乱码。
解决办法:
(1)本机系统增加环境变量。
鼠标选中我的电脑右键,点击属性--->高级系统配置--->高级--->环境变量。
点击环境变量,系统变量里:
代码语言:javascript复制点击新建
变量名填写 JAVA_TOOL_OPTIONS
变量值填写 -Dfile.encoding=UTF-8
(2)打开Tomcat安装目录下的bin文件夹,里面有个catalina.bat文件,修改此文件。
代码语言:javascript复制搜索:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
添加:
-Dfile.encoding=UTF-8
修改后:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF-8"
如图所示:修改后的catalina.bat文件。
(3)Jenkins配置环境变量。
系统管理--->系统设置--->全局属性,选中环境变量,添加对应的键值对。
代码语言:javascript复制键 JAVA_TOOL_OPTIONS 值 -Dfile.encoding=UTF-8
键 LANG 值 zh.CH.UTF-8
如图所示:
2.3.3.3、安装插件
插件(HTML Publisher)发布HTML报告。搜索HTML Publisher,选择后直接安装即可。
3、Postman创建脚本
要测试的接口:
接口1:
http://localhost:8083/getdemo?username=admin&password=123456
GET请求,2个参数username、password
返回数据为admin,123456
接口2:
http://localhost:8083/postdemo
POST请求,2个表单参数username、password
返回数据为admin,123456
3.1、创建测试集合
打开Postman,点击File--->New--->Collection,创建测试集合(Demo)。
如图所示:测试集合Demo创建完成。
3.2、创建环境变量
设置测试URL为公共的变量,点击Manage Environments。
创建环境变量(Test),添加变量名为Url,变量值为http://localhost:8083,点击Add添加。
3.3、创建测试用例
接口1(Get请求)
接口2(Post请求)
3.4、导出脚本
1、导出测试集合。
选择用例集合(Demo),点击Export。
默认选择,点击Export。
如图所示:导出成功,测试集合为.json文件。
2、导出环境变量。
点击Manage Environments。
选择环境变量(Test),点击Download Environment。
如图所示:导出成功,环境变量为.json文件。
4、Newman执行脚本
命令行窗口切换到导出的脚本目录里,输入执行命令:
代码语言:javascript复制newman run Demo.postman_collection.json -e Test.postman_environment.json --reporters cli,html --reporter-html-export TestReport.html
参数:
代码语言:javascript复制run 运行newman的命令;
-e 加载环境变量的数据;
--reporters cli,html 指定生成报告的类型;
TestReport.html 生成的html报告名。
如图所示:命令行执行的结果。
脚本执行完,生成的html报告(TestReport.html)。
点击打开TestReport.html报告,显示报告内容。
注意:输入执行脚本命令产生html报告,若提示html报告无法加载。
如图所示:
则需要安装html报告模块,输入命令npm install -g newman-reporter-html安装即可。
5、Jenkins持续集成
5.1、创建项目
点击新建任务。
输入一个任务名称(例如Test_Demo),选择构建一个自由风格的软件项目即可,点击确定。
构建,增加构建步骤(执行Windows批处理命令)。
输入执行命令(报告输出到test-report目录里):
代码语言:javascript复制newman run D:testDemo.postman_collection.json -e D:testTest.postman_environment.json --reporters cli,html --reporter-html-export .test-reportTestReport.html
构建后操作,增加构建后操作步骤(Publish HTML reports)。发布HTML报告。
最后保存即可。
还可以设置源码管理(Git、svn),添加定时构建、轮询SCM,发送邮件等设置。
5.2、执行项目
点击构建按钮,执行项目。
之后左下角出现执行进度状态条。
进入项目,可查看历史构建。
点击控制台输出可查看构建执行时的日志。
可以查看测试报告(HTML)。
如图所示:打开测试报告,显示报告内容。
5.3、解决HTML报告显示不正常
1、问题:
(1)如图所示:项目的测试报告(HTML Report)为.html格式。
(2)打开发现报告显示格式不正确。
2、解决:
(1)系统管理--->脚本命令行。
(2)输入以下参数,点击运行。
代码语言:javascript复制System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
(3)再次执行脚本,查看新生成的测试报告,如图所示:显示正常。