1、接口的概念
系统与系统之间,组件与组件之间,数据传递交互的通道
2、接口的类型
按协议划分:http、tcp、IP
按语言划分:C++、java、PHP……
按范围划分:
- 系统之间 多个内部系统之间 内部系统与外部系统之间
- 程序之间 方法与方法之间、函数与函数之间、模块与模块之间
3、接口测试的概念
对系统或组件之间的接口进行测试,校验传递的数据正确性和逻辑依赖关系的正确行。
4、接口测试的原理
主要针对服务器,模拟客户端向服务器发送请求,通过工具或者代码来测试服务器针对客户端请求回发的响应数据是否与预期结果一致。
5、接口测试的特点
- 符合质量控制前移的理念
- 可以发现一些页面操作发现不了的问题
- 接口测试低成本高效益
- 接口测试是从用户的角度对系统进行检测
6、接口测试与功能测试的区分
- 与手工设计相同之处: 手工测试对应的功能测试点,与接口测试对应的功能完全一致
- 与手工设计不同之处: 手工测试,测写入到输入框中的数据是否正确 但是接口测试测参数对应的参数值是否正确,此外还需对参数本身进行测试
7、接口测试用例文档10要素
编号、用例名称(标题)、模块、优先级、预置条件、请求方法、URL、请求头、请求体(请求数据)、预期结果
8、postman的高级用法
8.1常用断言
(1)断言相应状态码 :Status code :Code is 200
在test标签中,选中 Status code :Code is 200,生成对应的代码
可调整方法参数里面的状态码
点击send按钮发送请求,从而执行断言代码
pm.test("status code is 200",function(){
pm.response.to.have.status(200);});
pm:代表 postman 的一个实例
test():是 pm实例的一个方法。有两个参数
参数1:在断言成功后,给出的文字提示。可以修改。"Status code is 200"
参数2:匿名函数。
pm.response.to.have.status(200);// 意思:postman 的响应结果中应该包含状态码 200200 ——> 预期结果!
例如:
(2)断言响应体是否包含某个字符串 : Response body: Contains string
pm.test("body matches string",function(){
pm.expect(pm.response.text()).to.include("i love success");
});
(3)断言响应体是否等于某个字符串 : Response body : Is equal to string
pm.test("Body is currect",function(){
pm.response.to.have.body("response_body_string");});
(4)断言JSON数据 : Response bode : JSON value check
pm.test("Your test name",function(){
pm.expect(pm.response.json.value).to.equal(100);});
(5)断言响应头 : Response headers:Content-Type header check
pm.test("Content-Type is present",function(){
pm.response.to.have.header("Contype-Type");});
8.3全局变量和环境变量
(1)全局变量
设置:pm.globals.set(“全局变量名”,全局变量的值);
获取:
- 代码获取:var 接收值的变量 = pm.globals.get(“全局变量名”);
- 请求参数获取:{{全局变量名}}
(2)环境变量
设置:pm.environment.set(“环境变量名”, 环境变量值)
获取:
- 代码获取:var 接收值的变量 = pm.environment.get(“环境变量名”)
- 请求参数获取:{{环境变量名}}
8.4postman请求前置脚本
在send按钮点击后,请求前置脚本代码第一时间被执行,在postman内部实际Http请求之前。
例如:设定时间内调用有效,超过时间调用无效
实现步骤:
1、在 Pre-request Script 标签页中,添加代码。拿到时间戳,写入全局变量
var timestamp=newDate().getTime();
pm.globles.set("glb_timestamp",timestamp);
2、点击send按钮,发送请求。请求发送前执行上述代码,写入全局变量
3、然后再请求参数界面中,使用全局变量。{{全局变量名}}
8.5postman的工作原理
8.6postman 关联
应用于多个http请求之间,有数据关联或依赖关系时。
实现步骤:
A接口依赖B接口的数据
①向B接口发送http请求,获取数据
②将数据设置到全局变量或者环境变量中
③A接口获取全局变量或者环境变量的数据值,进行使用
8.7导入外部数据文件
CSV文件:
- 创建 xxx.csv 文件。
- 将数据写入到 csv文件中。 - 第一行 写入 的是 数据对应的 “字段名”。- 从第二行向后依次是对应的数值,数据间用 英文逗号隔分。-
- 在 Postman 中,选中使用数据文件的 用例集,导入数据文件。 - 点击用例集名称,使用 Run 按钮,进入 “Runner” 页面。- 使用 “Select File” 按钮选择 xxx.csv 文件。- 点击 预览按钮,校验数据文件是否正确。JSON文件
- 创建 xxx.json 数据文件
- 在 数据文件中,按json 语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层,必须是 [ ] 。内部所有的数据用 {} 存储。( 建议:使用 json.cn 在线网站编写。)
- 在 Postman 中,选中使用数据文件的 用例集,导入数据文件。 - 点击用例集名称,使用 Run 按钮,进入 “Runner” 页面。- 使用 “Select File” 按钮选择 xxx.json 文件。- 点击 预览按钮,校验数据文件是否正确。
8.8读取数据文件数据
根据使用数据 位置 不同,有两种获取数据文件中数据的方法。
- 第一种:请求参数(请求行、请求头、请求体)中,使用 数据文件中 的数据 - 使用 {{}} 包裹 csv 文件 字段名 或 json 文件中的 key - 如: {{username}} 或 {{password}}
- 第二种:代码(断言、请求前置脚本)中,使用 数据文件中 的数据 - 需要借助 postman 提供的 关键字data 点 csv 文件的字段名 或 json文件的 key - 如: data.username 或 data.password
8.9生成测试报告
步骤:
- 批量执行测试用例(借助数据文件)
- 导出 测试用例集 (建议与 数据文件 放在一起)
- 执行生成测试报告的命令
newman run 用例集名称.json -d 数据文件名.csv/.json -r html --reporter-html-export 报告名称.html
版权归原作者 仟各 所有, 如有侵权,请联系我们删除。