当前位置:网站首页>接口自动化测试框架postman tests常用方法
接口自动化测试框架postman tests常用方法
2022-08-05 00:52:00 【软测小西瓜】
目录
3.检查response body中是否包含某个string
6.检查response body是否与某个string相等
7.测试response Headers中的某个元素是否存在(如:Content-Type)
14.JSON.parse()和JSON.stringify()
postman常用方法集合:
1.设置环境变量
postman.setEnvironmentVariable("key", "value");
pm.environment.set("key", "value");//postman 5.0以上版本设置环境变量的方法
2.设置全局变量
postman.setGlobalVariable("key", "value");
pm.globals.set("variable_key", "variable_value");//postman 5.0以上版本设置全局变量方法
3.检查response body中是否包含某个string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});//5.0以上版本方法
4.检测JSON中的某个值是否等于预期的值
var data = JSON.parse(responseBody);
tests["Your test name"] = data.value === 100;
JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。
如:检查json中某个数组元素的个数(这里检测programs的长度)
var data = JSON.parse(responseBody);
tests["program's lenght"] = data.programs.length === 5;
5.转换XML body为JSON对象
var jsonObject = xml2Json(responseBody);
tests["Body is correct"] = responseBody === "response_body_string";
6.检查response body是否与某个string相等
7.测试response Headers中的某个元素是否存在(如:Content-Type)
//getResponseHeader()方法会返回header的值,如果该值存在
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不区分大小写。下面的方法,要区分大小写。
8.验证Status code的值
tests["Status code is 200"] = responseCode.code === 200;
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});//5.0以上版本方法
9.验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;
//5.0以上版本方法
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
10.name是否包含某个值
tests["Status code name has string"] = responseCode.name.has("Created");
//5.0以上版本方法
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
});
11.POST 请求的状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
//5.0以上版本方法
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
12.很小的JSON数据验证器
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, 123];
console.log(tv4.error);
tests["Valid Data1"] = tv4.validate(data1, schema);
tests["Valid Data2"] = tv4.validate(data2, schema);
13.获取request.data值:
var Json = JSON.parse(request.data);
- data {object}:
this is a dictionary of form data for the request. (request.data["key"]=="value") - headers {object}:
this is a dictionary of headers for the request (request.headers["key"]=="value") - method {string}:
GET/POST/PUT etc. - url {string}:
the url for the request.
假设requestBody中有"version":"1.0";这个值,如果想获取到version的value值,代码如下
var Json = JSON.parse(request.data);
var version = Json["version"];
14.JSON.parse()和JSON.stringify()
JSON.parse()【从一个字符串中解析出json对象】
JSON.stringify()【从一个对象中解析出字符串】
var data={name:'goatling'}
JSON.parse(data)
结果是: '{"name":"goatling"}'
JSON.stringify(data)
结果是:name:"goatling"
15.判断字段值是否为空typeof()
var Jsondata = JSON.parse(responseBody);
if( typeof(Jsondata.data) != "undefined" )
边栏推荐
- 3. pcie.v file
- JUC thread pool (1): FutureTask use
- 2022杭电多校 第三场 B题 Boss Rush
- canvas Gaussian blur effect
- 数仓4.0(三)------数据仓库系统
- Software test interview questions: BIOS, Fat, IDE, Sata, SCSI, Ntfs windows NT?
- 2022 Hangzhou Electric Multi-School Training Session 3 1009 Package Delivery
- 工具类总结
- GCC:编译时库路径和运行时库路径
- Theory of Software Fundamentals
猜你喜欢
自定义线程池
2022杭电多校第三场 K题 Taxi
SV class virtual method of polymorphism
Bit rate vs. resolution, which one is more important?
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionExcep
进程间通信和线程间通信
CNI (Container Network Plugin)
JVM类加载简介
[230] Execute command error after connecting to Redis MISCONF Redis is configured to save RDB snapshots
Countdown to 1 day!From August 2nd to 4th, I will talk with you about open source and employment!
随机推荐
仅3w报价B站up主竟带来1200w播放!品牌高性价比B站投放标杆!
软件测试面试题:测试生命周期,测试过程分为几个阶段,以及各阶段的含义及使用的方法?
从一次数据库误操作开始了解MySQL日志【bin log、redo log、undo log】
FSAWS 的全球基础设施和网络
linux(centOs7)部署mysql(8.0.20)数据库
Gartner Hype Cycle:超融合技术将在2年内到达“生产力成熟期”
5. PCIe official example
PCIe 核配置
ORA-00604 ORA-02429
GCC:屏蔽动态库之间的依赖
[FreeRTOS] FreeRTOS and stm32 built-in stack occupancy
Software testing interview questions: What is the difference between load testing, capacity testing, and strength testing?
ora-00604 ora-02429
2021年11月网络规划设计师上午题知识点(上)
Software testing interview questions: What stages should a complete set of tests consist of?
Software testing interview questions: What are the seven-layer network protocols?
2022牛客多校训练第二场 J题 Link with Arithmetic Progression
跨域解决方案
Software Testing Interview Questions: What do you think about software process improvement? Is there something that needs improvement in the enterprise you have worked for? What do you expect the idea
Software Testing Interview Questions: What do test cases usually include?