一、创建项目
1、创建New Collection,重命名为你想建的项目名字;2、在New Collection下可以分模块创建文件夹add Folder;3、在add Folder下add Request
二、变量设置
变量的写法是 {{变量名称}}
全局变量
1、点击postman客户端右上角的小眼睛
2、找到Globals,点击右边的Edit添加全局变量
3、在VARIABLE栏添加变量名称,INITAL VALUE是初始值,CURRENT VALUE的值是当前变量值
// 在test中设置全局变量
pm.globals.set("variable_key", "variable_value");
环境变量
1、点击postman客户端右上角的小眼睛 2、找到Environment,点击右边的Edit添加全局变量 3、在VARIABLE栏添加变量名称,INITAL VALUE是初始值,CURRENT VALUE的值是当前变量值
// 在test中设置环境变量
pm.environment.set("variable_key", "variable_value");
本地变量
1、在请求窗口中有Pre-request Script在其中添加如下代码
// 本地变量 前面是变量名称,后面是变量值
pm.variables.set("adapter","IPTV-Interfaces-adapter");
三、断言方法
在请求窗口中有Tests在其中添加如下代码
// postman断言
// 1、断言返回码为200 状态断言
pm.test("Status code is 200",function(){
pm.response.to.have.status(200);
});
// 2、断言返回结果中包括有一个指定的字符串
pm.test("Body matches string",function(){
pm.expect(pm.response.text()).to.include("厄运");
});
// 3、对返回结果做json字段检查
pm.test("Your test name",function(){
var jsonData = pm.response.json();
pm.expect(jsonData.total).to.eql(21);
});
// 4、断言返回的结果等于一个字符串
pm.test("Body is correct",function(){
pm.response.to.have.body('第几个')
});
// 5、断言响应头中包含有指定的响应头
pm.test("Content-Type is present",function(){
pm.response.to.have.header("Content-Type")
});
// 6、断言接口请求时间少于200ms
pm.test("Response time is less than 200ms",function(){
pm.expect(pm.response.responseTime).to.be.below(600);
});
// 7、断言一个post请求的返回状态码是否在指定的范围里面
pm.test("Successful POST request",function(){
pm.expect(pm.response.code).to.be.oneOf([200,201]);
});
// 8、断言返回的状态码信息中包含指定的字符串
pm.test("Status code name has string",function(){
pm.response.to.have.status("OK")
})
四、关联接口
// 通过json提取
var jsonData = pm.response.json();
pm.environment.set("answer", jsonData.answer.text);
// 通过正则
var answer = responseBody.match(new RegExp('"text":"(.*?)","type"'));
pm.environment.set("answer", answer[1]);
五、参数自定义
// 内置的动态参数
{{$timestamp}} 生成当前时间的时间戳,以s为单位
{{$randomlnt}} 生成0-1000之间的数据数
{{$guid}} 生成随机GUID字符串
//=====================
// 自定义参数
//=====================
在Pre-request Script里进行操作
例:
// 获取时间戳(ms)
var times = Date.now()
// 设置为本地变量
pm.variables.set("time", times);
六、json&csv批量传参
# csv格式
query,assertionname
小猪佩奇,小猪佩奇
父母爱情,父母爱情
奥特曼,奥特曼
钢铁侠,钢铁侠
侏罗纪世界,侏罗纪世界
复仇者联盟,复仇者联盟
# json格式
[
{"query":"小猪佩奇","assertionname":"小猪佩奇"},
{"query":"父母爱情","assertionname":"父母爱情"},
{"query":"奥特曼","assertionname":"奥特曼"},
{"query":"钢铁侠","assertionname":"钢铁侠"},
{"query":"侏罗纪世界","assertionname":"侏罗纪世界"},
{"query":"复仇者联盟","assertionname":"复仇者联盟"}
]
# 在请求参数中值
{{文件中的key}}
# 在断言中获取文件里的值
data.文件中的key
七、导出项目&变量
导出项目
导出文件为json格式
例:search.postman_collection.json
导出变量
导出文件为json格式
例:iptv_search.postman_environment.json
八、执行项目生成报告
将导出的项目放到服务器上
# 目录:workspace为自己新建项目名称
/data/thirdAssembly/jenkins/{workspace}/Case
# 例:
/data/thirdAssembly/jenkins/iptv_search/Case
将导出的变量放到服务器上
# 环境变量
# 目录:workspace为自己新建项目名称
/data/thirdAssembly/jenkins/{workspace}/Environment
# 例:
/data/thirdAssembly/jenkins/iptv_search/Environment
# 全局变量
# 目录:workspace为自己新建项目名称
/data/thirdAssembly/jenkins/{workspace}/Globals
# 例:
/data/thirdAssembly/jenkins/iptv_search/Globals
在jenkins上创建项目
1、 在项目配置里选择构建
结合上文postman也能做接口自动化测试,还有完美的可视化报告?
# 点击增加构建步骤选择执行shell workspace为自己新建项目名称
newman run /data/thirdAssembly/jenkins/{workspace}/Case/search.postman_collection.json -e /data/thirdAssembly/jenkins/{workspace}/Environment/iptv_search.postman_environment.json -r allure --reporter-allure-export /root/.jenkins/workspace/{workspace}/target/XML
# 例:
newman run /data/thirdAssembly/jenkins/iptv_search/Case/search.postman_collection.json -e /data/thirdAssembly/jenkins/iptv_search/Environment/iptv_search.postman_environment.json -r allure --reporter-allure-export /root/.jenkins/workspace/iptv_search/target/XML
# newman命令简介
1、newman run 集合名/url地址 :运行一个集合,url地址为集合文件导出的url
2、-e,--environment :指定环境文件路径
3、-g,--globals :指定全局变量的文件路径
4、-d,--iteration-data :指定用于迭代的数据源文件路径
5、-n,--iteration-count :指定迭代次数
6、--folder :运行集合中指定的文件夹
7、--timeout (ms) :设置整个集合运行完成执行的时间
8、-r,--reporters :指定用于此次运行的报告类型
cli,xml,json,junit,html,htmlextra
9、 --reporter-json-export jsonReport.json 生成json格式的测试报告
10、--reporter-junit-export xmlReport.xml 生成xml格式的测试报告
11、--reporter-html-export htmlReport.html 生成html格式的测试报告
12、--reporter-htmlextra-export htmlReport.html 生成htmlextra格式的测试报告
2、 在项目配置里选择构建后操作
# 点击增加构建后操作步骤 选择Allure Reports
# Result的Path填:
target/XML
# 点击高级
# Report path填: workspace为自己新建项目名称
/root/.jenkins/workspace/{workspace}/target/HTML
# 例:
/root/.jenkins/workspace/iptv_search/target/HTML
3、点击应用
4、返回主页面点击构建
5、点击Allure Report查看报告
总结
postman测试结果可视化,利用postman接口测试+jenkins的持续集成能力+allure将测试结果可视化,并留下较详细的测试记录,操作简单、支持内网部署;共同维护一份接口定义,打通各个环节;前端Mock Server方案 在Yapi平台,前后端只要维护接口定义的响应数据,就可以生成需要的模拟数据。在Mock功能中提供了期望和自定义脚本功能,满足大部分复杂场景数据模拟需求。
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。