目录
概述
执行顺序
预处理脚本为请求添加动态传参
测试脚本
如何快速生成测试脚本
postman集成到Jenkins
Postman是一个客户端接口测试工具,它不仅可以用在测试当中,还可以用在开发当中,在postman的使用过程中,其实大部分人都在做手工测试,name其实postman还有另外一个非常强大的功能,就是自动化测试,这个功能可以通过编写脚本,来实现自动化测试,接下来就一起探讨一下如何使用Postman来实现接口的自动化测试。
Postman包含了一个强大的Node.js运行环境,可以通过编写JavaScript脚本来实现一些动态的行为,比如时候包含一些动态的参数,请求之间传递数据,自动化测试等等
有两个时机可以包含动态的JavaScript脚本
预处理脚本(Pre-request Script),请求之前添加的脚本,作用就是一些初始化的功能
测试脚本(Test Script),响应之后添加的脚本,作用就是测试
在请求、预处理脚本、响应和测试脚本他们之间有一定的执行顺序
只有一个请求
预处理脚本-->执行请求-->执行响应-->测试脚本
多个请求
那么其实在我们集合和文件夹里边,也可以像请求一样,可以添加预处理脚本和测试脚本,大多数情况下,一组测试都会有多个请求,并且通过集合或者文件夹来组织他们,在这种情况下,它们之间的执行顺序是这样的:
集合的预处理脚本-->文件夹的预处理脚本-->请求的预处理脚本-->执行请求-->响应-->集合的测试脚本-->文件夹的测试脚本-->请求的测试脚本
接下来实验一下,首先创建一个集合,在集合里边创建一个文件夹,在文件夹里再创建一个请求,然后分别给它添加预处理脚本和测试脚本,最后我们查看一下输出结果顺序是否吻合
首先创建一个请求,在预处理脚本这个地方输入脚本:
pm.globals.set("empNo","15501176233");
pm.globals.set("password","d0dcbf0d12a6b1e7fbfa2ce5848f3eff");
pm.globals.set("mark","app");
接下来,在请求参数这个地方,使用三个全局变量作为动态请求参数,点击发送请求
在响应的结果里边,我们可以看到,成功的获得响应数据
测试脚本的目的就是做接口的自动化测试
测试响应是否成功,也就是响应状态码是不是200
pm.test("请求成功,状态码为200",function(){
pm.response.to.have.status(200);
});
在测试脚本这个部分,输入这样一段测试代码,点击发送请求,如果请求正确的话,它会在响应区里边叫Test Results这个地方看到一个正确的测试结果
测试脚本如何控制请求的流程
比如说请求的跳转和请求的循环执行,流程控制可以使用Postman里边的setNextRequest("request_name")
这个方法来实现跳转,我们把参数里边使用要跳转的请求名称上添加上就可以了,如果实现循环,那么将请求参数设置为自己的一个名称,这样就可以了,结束循环,我们可以把这个参数设置为null
接下来我们做一个实验,首先我们创建三个请求,他们分别是baidu,jd和taobao,那么baidu的预处理这里边我们输入一个叫
postman.setNextRequest("taobao")
这里边我们指定是taobao,这样一个代码,那么他就会请求跳过jd,直接运行taobao请求,接下来在淘宝的测试脚本里边输入这样一个代码:
console.log("taobao");
postman.setNextRequest("taobao");
那么这样taobao请求就会一直循序下去,刚刚讲述了如何实现测试脚本流程的控制,在接下来我们看看如何快速生成测试脚本
为了快速生成测试脚本,postman提供了一个自动生成脚本的功能,打开预处理脚本或者是测试脚本,在postman右侧边栏里边,会看到一个生成代码片段的这样一个链接,点击链接,就可以生成自动化测试脚本了,那么接下里给这些自动化测试脚本做一个分类,
第一类是设置获取和清除变量的,比如说全局变量、环境变量和本地变量,
pm.environment.get("variable_key");
pm.globals.get("variable_key");
pm.variables.get("variable_key");
pm.environment.set("variable_key");
pm.globals.set("variable_key");
pm.environment.unset("variable_key");
pm.globals.unset("variable_key");
第二类就是响应处理相关的一些操作,比如检查一下响应主体里边,是不是包含某一个字符串,检查响应的主体里边是不是等于某一个字符串,或者是检查一下json的一个值,检查一下内容类型,是不是出现在header里边,那么以及响应的时间是不是小于200毫秒,状态码是不是200
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
搭建环境
步骤,首先安装Jenkins,然后安装node.js,还要安装newman,newman是一个客户端脚本,这样一个工具,接下来使用postman来创建一个测试用例,然后把这个测试用例导出,在接下我们使用命令行工具newman运行这个测试用例,最后集成到Jenkins里边去
接下里我们实现这几个步骤, 首先看看如何下载安装Jenkins,Jenkins下载地址http://mirrors.jenkins.io/war-stable/latest/jenkins.war ,下载完成之后,在下载目录里边,我们使用java -jar
这个命令进行安装,安装完成之后,打开浏览器,进入Jenkins的运行界面。那么再看看如何安装node.js,下载地址:nodejs.org/en/ ,node.js安装非常简单,一路点击下一步,就可以安装成功,这里不再赘述,安装成功之后,在命令行里输入node和npm,输出结果:
npm是node.js的一个包管理工具,使用它可以管理node.js包,安装newman就需要使用它来安装,安装的命令:
npm install -g newman
安装成功之后,输入newman -version
就可以查看一下当前newman的版本
创建用例
现在看一下如何使用postman创建一个测试用例,用例比较简单,请求百度,并且使用测试脚本,查看响应时间
接着导出这个测试脚本,并在命令行里边,使用postman运行一下,右击集合,选择Export,就可以导出这个测试脚本,在测试脚本的目录当中,打开命令newman,并且来运行这个脚本
newman run export-collection.postman_collection.json
最后一步就是要实现怎么样集成到Jenkins里面去,打开Jenkins,选择新建item,输入一个任务名称,在它下边选择一个叫自由风格的项目,然后在构建选项里边,选择执行一个Windows批处理,那么输入下边的这样一段命令
B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!