2022-05-06 - Postman测试脚本入门の一
2022-05-06 本文已影响0人
耑意儿
目录:
1、概述
2、单条脚本代码阅读
3、Response\Status code相关脚本代码
4、请求类型详解
5、生成测试报告

一、概述
本次测试基于查询Ip的接口http://apis.juhe.cn/ip/ipNew
:
详情可前往FreeApi查看。(如果公司有现成的接口就不必费这个事啦,直接用公司的就好。)
接口请求类型为:GET
请求
请求参数包含key
和ip
,key到FreeApi去根据引导获取,每日有上限,我下面的Demo就是超过请求次数了的【苦涩】,无妨,不影响学习。

根据Postman提供的脚本片段入手进行测试脚本学习:

二、单条脚本代码阅读
先取一段脚本代码进行阅读:
pm.test("响应体中包含字符串:resultcode", function () {
pm.expect(pm.response.text()).to.include("resultcode");
});
上述代码为一段包含两个参数的函数,函数为pm类下的 test
函数,
- 第一个参数是一个字符串(测试脚本执行后这串文字会在TestResult中打印出来,如下图);
- 第二个参数是一个匿名函数,匿名函数体中调用了pm的
expect
函数,expect
包含一个参数:pm.response.text()
,这个参数是通过pm获取到响应体并转换成文本,再通过.to.include来跟期望的字符串resultcode
进行比对。判断响应体文本中是否包含resultcode
这个字符串。

三、Response\Status code相关脚本代码
对Response\Status code进行测试:
// 检测响应体中是否包含特定的字符串,这个响应体信息我们在postman最下方窗口的Body标签可以直接查看
pm.test("响应体中包含字符串:resultcode", function () {
pm.expect(pm.response.text()).to.include("resultcode");
});
// 检测响应状态码是否为200,响应状态码在postman最下方窗口的标题栏右侧可看
pm.test("状态码为200", function () {
pm.response.to.have.status(200);
});
// 检测响应体Json中的error_code字段的值是否等于10012
pm.test("error_code的值为10012", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.error_code).to.eql(10012);
});
// 检测响应体完整的内容是否完全等同于期望的内容
pm.test("响应体内容与预期完全一致", function () {
pm.response.to.have.body({"resultcode":"112","reason":"超过每日可允许请求次数!","result":null,"error_code":10012});
});
// 检测请求头是否带了date信息,也可以检查是否包含Content-Type、Transfer-Encoding、Connection、Etag等,这个请求头信息我们在postman窗口中TestResult旁边的标签可以直接查看
pm.test("header中包含date日期", function () {
pm.response.to.have.header("date");
});
// 响应时间在postman最下方窗口的标题栏右侧可看
pm.test("响应时间少于200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
// 响应状态码在postman最下方窗口的标题栏右侧可看
pm.test("响应码为201或202或200", function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202,200]);
});
// 响应状态码名称在postman最下方窗口的标题栏右侧可看
pm.test("状态码名称为OK", function () {
pm.response.to.have.status("OK");
});
四、八种请求类型介绍
后四种不常用
- POST 增
- DELETE 删
- PUT 改
- GET 查
- TRACE 跟踪
- HEAD 跟GET类型,但只返回头部,不返回响应体
- OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法
- CONNECT 用于建立一个网络连接,HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
五、生成测试报告(mac电脑)
- 下载安装node.js 并配置环境变量
- 安装
newman
以管理员身份打开terminal ( sudo su ,然后输入密码)
安装命令:mpn install -g newman
检验:newman -v - 安装
newman-reporter-html
npm install -g newman-reporter-html - 在postman里导出测试集
search.pm_collection.json
search.pm_collection_envir.json
- terminal 执行以下命令,生成测试报告
newman run search.pm_collection.json -e search.pm_collection_envir.json -r html --reporter-html-export search_ip.html
