​postman接口自动化

931 篇文章 26 订阅
646 篇文章 0 订阅

一、创建项目

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%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值