考研网站做刷词,安康网站定制厂家,天马行空网站建设,wordpress主题对应的插件Potman 断言
Postman 断言简介
让 Postman工具 代替 人工 自动判断 预期结果 和 实际结果 是否一致断言代码 书写在 Tests 标签页中。 查看断言结果 Test Results 标签页
Postman 常用断言
1. 断言响应状态码 Status code#xff1a;Code is 200
// 断言响应状态码为 200…Potman 断言
Postman 断言简介
让 Postman工具 代替 人工 自动判断 预期结果 和 实际结果 是否一致断言代码 书写在 Tests 标签页中。 查看断言结果 Test Results 标签页
Postman 常用断言
1. 断言响应状态码 Status codeCode is 200
// 断言响应状态码为 200
pm.test(Status code is 200, function () {
pm.response.to.have.status(200);
});
pmpostman的实例。
test() postman实例的测试方法。 这个方法 有 2 个参数。
参1Status code is 200。 这个参数可以任意修改不影响 断言。
作用在断言结束后显示给用户断言结果的提示文字。
参2是一个 匿名函数 调用。
pm.response.to.have.status(200); 的意思是
postman的响应结果中应该有 响应状态码 200。 ———— 这里的 200 是 预期结果。2. 断言包含某字符串 Response body: Contains string
pm.test(Body matches string, function () {
pm.expect(pm.response.text()).to.include(string_you_want_to_search);
});
pmpostman的实例。
test() postman实例的测试方法。 这个方法 有 2 个参数。
参1Body matches string。 这个参数可以任意修改不影响 断言。
作用在断言结束后显示给用户断言结果的提示文字。
参2是一个 匿名函数 调用。
pm.expect(pm.response.text()).to.include(string_you_want_to_search); 的意思是
postman 期望 响应文本中应该包含 “你想搜索的字符串”(预期结果)3. 断言JSON数据 Response body: JSON value Check
pm.test(Your test name, function () {
var jsonData pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
pmpostman的实例。
test() postman实例的测试方法。 这个方法 有 2 个参数。
参1Body matches string。 这个参数可以任意修改不影响 断言。
作用在断言结束后显示给用户断言结果的提示文字。
参2是一个 匿名函数 调用。
var jsonData pm.response.json(); 将 整个 json响应体 赋值到 变量 jsonData 上。
pm.expect(jsonData.value).to.eql(100); postman 期望 json结果中 指定key 的值为 xxx
value 能取值success、code、messagePostman 关联
当接口和接口之间有依赖关系时需要借助 postman 关联技术来实现。 如 登录接口 返回的 令牌数据被 添加员工接口依赖。 添加员工接口 返回 员工id被 查询员工接口依赖。
实现步骤
假定接口B 产生的数据被 接口A 依赖。
发送 接口B 请求获取响应数据。将 响应数据放入公共容器全局变量、环境变量中接口A 从 公共容器中提取数据发送请求。
核心代码
// 1. 获取 响应数据转为 json格式保存到变量 jsonData中。
var jsonData pm.response.json()
// 2.1 使用 全局变量做容器。
pm.globals.set(全局变量名, 全局变量值)
// 2.2 使用 环境变量做容器。
pm.environment.set(环境变量名, 环境变量值)
// 3. 在 postman 界面中URL、请求头headers、请求体body 提取 全局、环境变量 数据。
{{全局变量名}}/{{环境变量名}}例从获取天气接口http://www.weather.com.cn/data/sk/101010100.html 获取返回结果中的城市名称 调用百度搜索接口 http://www.baidu.com/S?wd北京 把获取到的城市名称如北京作为请求参数 Tests 代码
// 1. 获取响应结果
var jsonData pm.response.json()
// 2. 从响应结果中提取 城市名
var city jsonData.weatherinfo.city
// 3. 将城市名保存到 全局变量
pm.globals.set(glb_city, city)Postman 参数化
什么是参数化 将 测试数据组织到 数据文件中通过脚本的反复迭代使用不同的数据达到测试不同用例的目标。 应用场景 一般在测试同一个接口的不同 测试点时只有测试数据不同。考虑使用 参数化。
编写数据文件 导入数据文件到postman
点击“run”按钮进入runner页面
点击“preview”预览参数文件确认数据无误 读取数据文件数据
理论 根据 使用位置 不同有两种方法。
第一种请求参数请求行、请求头、请求体中使用 数据文件中 的数据 csv文件{{字段名}} json文件{{键名}}第二种代码Tests中使用 数据文件中 的数据 使用 postman 内置的 关键字 data索引 字段名 或 键名 csv文件data.字段名 json文件data.键名
例 需求批量查询 手机号 所属运营商校验运营商数据正确性 接口 http://cx.shouji.360.cn/phonearea.php?number13012345678 测试数据 手机号: 13012345678 运营商: 联通 手机号: 13800001111 运营商: 移动 手机号: 18966778899 运营商: 电 信 拓展-查看控制台 postman的导出和导入
导出
导入 环境文件导出 测试用例脚本中包含 环境使用需要导出 环境文件
Postman 测试报告
使用newman插件生成测试报告
前置步骤 1、安装node.js https://nodejs.org/zh-cn/download/
# 安装
双击 .msi 文件一路下一步安装即可。无需特殊设定。
# 测试安装成功
npm -v2、安装newman
# 安装newman
npm install -g newman
# 测试安装成功
newman -v
# 安装newman插件 - 扩展版
npm install -g newman-reporter-htmlextra3、newman生成测试报告
# 完整命令
newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporterhtmlextra-export 测试报告名.html
-e 和 -d 是 非必须的。
如果没有使用 环境不需要指定 -e
如果没有使用 数据文件做参数化不需要指定 -d例
newman run 用例集文件.postman_collection.json -d login.json -r htmlextra --reporter-htmlextraexport 测试报告.html拓展 1、post环境变量的默认值 使用场景 2、强制类型转换 断言时出现提示 数值 X 不等于字符串 ‘X’ 需要进行强制类型转换
3、响应数据为列表时的断言 响应数据格式: 方法一取出元素进行断言 例如断言第一个数据元素id的值为1 断言
方法二断言返回数据的长度 如断言返回了三条数据