怎么做网站账号注册机公司产品展厅设计
PostMan的学习
目录
- 环境变量和全局变量
 - 接口关联
 - 内置动态参数以及自定义动态参数
 - 实现业务闭环
 - Postman断言
 - 批量运行collection
 - 数据驱动之CSV文件和JSON文件
 - 测试必须带请求头的接口
 - Mock Serviers 服务器
 - Cookie鉴权
 - Newman
 - PostMan+NewMan+jenkins实现接口测试持续集成
 
参考资料:
Postman接口测试使用教程和接口自动化测试项目实战你要的都有_哔哩哔哩_bilibili
环境变量和全局变量
-  
Environment的设置 环境变量和全局变量

 -  
获取环境变量和全局变量的方式: {{变量名}}
 
接口关联
-  
使用json提取器提取access_token (登录接口后可以自动执行test脚本)
// 返回的字符串格式转换成对象的形式 var result=JSON.parse(responseBody); // 把access_token 设置为全局对象 pm.globals.set("access_token", "result.access_token"); // 第二个接口获取 {{access_token}} -  
使用正则表达式提取器实现接口关联
// 返回的字符串格式转换成对象的形式 var result=responseBody.match(new RegExp('"access_token":"(.*?)"'))pm.globals.set("access_token", result[1]); // 第二个接口获取 {{access_token}} 
内置动态参数以及自定义动态参数
-  
postman 内置动态参数
{{$timestamp}} 生成当前时间的时间戳
{{$randomInt}} 生成0~1000的随机数
{{$guid}} 生成速记GUID字符串
 -  
自定义动态参数 方法请求前编写脚本(pre-request-script)
// 手动获取时间戳 var time=Date.now()// 设置全局变量 pm.globals.set("times", time);使用时使用:{{time}} 
实现业务闭环
-  
增删改查的接口,添加完把id设置成全局变量
// 获取创建的id var tag_id=responseBody.match(new RegExp('"id":(*.?).'));// 把id设置为全局变量 pm.globals.set("tag_id", tag_id[1]); 
Postman断言
Status code: Code is 200 检查返回的状态码是否为200
Response body:Contains String 检查响应中包括指定字符串
Response body:JSON value check 检查响应中其中json的值
Response body:is equal to a string 检查响应等于一个字符串
Response Header: Content type 检查是否包含响应头 Content-Type
Response time is less than 200ms: 检查请求耗时小于200ms
断言判断
- 状态断言 利用code ==200
 - 业务断言 判断response body 是否有业务的值
 
在断言中获取自定义动态参数(全局变量)的方式:
pm.globals.get(“time”)
globals[“time”]
globals.times
断言加到全局上
批量运行collection
- 选一个集合把所有接口运行
 - 上传文件要允许postman读取路径,拷贝到工作目录
 
数据驱动之CSV文件和JSON文件
- 编写csv文件/json文件 (多个用例)
 - 记得接口的参数全改成动态获取,宏定义
 
测试必须带请求头的接口
常见的请求头:
- Host 请求的主机地址
 - Connection 连接方式
 - Accept 客户端接收到的数据格式
 - X-Requested-With 异步请求
 - Referer 来源
 - Cookie Cookie信息
 - Content-Type: 请求内容的格式
 
Mock Serviers 服务器
mock 模拟
后端接口还没有开发完成,前端的业务需要调用后端的接口。
{"error_code":0,"msg":"返回成功","data":[]
}
 
https://4cc5686e-fea4-4315-b775-2d3dec990017.mock.pstmn.io
Cookie鉴权
什么是cookie
cookie是一小段文本,格式 key=value
cookie的鉴权原理
- 当客户端第一次访问服务器的时候,那么服务器就会生成cookie信息,并且在响应头的set-cookie里面把生成的cookie信息发送给客户端
 - 当客户端第 2 -N次访问服务器的时候,那么客户端就会在请求头带上cookie信息,从而实现鉴权
 
cookie的分类
- 会话cookie:保存在内存,当浏览器关闭之后就会自动化清楚cookie
 - 持久cookie:保存在硬盘,浏览器关闭后不会清楚,只有当失效时间到了之后会自动清楚
 
postman自动触发cookie保存
Newman
postman 是专为接口测试而生。newman(新男人)是专为postman而生的。
newman 可以让我们postman的脚本通过非GUI方式运行
运行命令:newman run
常用参数:
-e 引用环境变量
-g 引用全局变量
-d 引用数据文件
-n 指定测试用例迭代的次数
-r cli,html,json,junit —reporter-html-export 指定生成HTML的报告
安装newman
- postman导出测试用例
 - postman导出全局json
 - postman导出环境json
 - 准备数据json
 
执行命令:
newman run testcase.json -e environment.json -g globals.json -d data.json -r cli,html,json,junit —reporter-html-export export.html
 
PostMan+NewMan+jenkins实现接口测试持续集成
- 新增一个项目
 - 设置自定义工作空间
 - 构建执行windows批处理命令
 - 执行系统的Grovy脚本(保证样式不丢失)
 - 生成的HTML集成到Jenkins
 
