- 一、接口测试基础
- 1.接口及接口测试概念
- 接口的类型
- 接口测试
- 2.HTTP协议(超文本传输协议)
- 2.1 URL(统一资源定位符)
- 2.2 HTTP请求
- 请求行
- 请求头
- 请求体
- 2.3HTTP响应
- 状态行
- 响应头
- 响应体
- 2.4 传统风格接口
- 2.5 RESTful风格接口
- 3.接口测试流程
- 接口文档
- 接口文档解析
- 黑马人力资源网页:
- 4.接口用例设计
- 单接口测试用例
- 业务场景测试用例
- 二、Postman实现接口测试
- 1.Postman介绍和安装
- 安装插件newman
- 黑马官网
- 2.Postman基本用法
- 3.Postman高级用法
- 断言
- **1.断言响应状态码**
- 2.断言响应体是否包含某个字符串
- 3.断言响应体是否等于某个字符串(对象)
- **4.断言json数据**
- 5.断言响应头
- postman断言工作原理
- 全局变量和环境变量
- 请求前置脚本
- 关联
- 批量执行用例集
- 4.Postman测试报告
- 5.postman参数化
- 数据文件简介
- 导入外部 数据文件
- 读取数据文件数据
- 生成测试报告
- 6.项目实战(iHRM)
- 初始化项目环境
- 新建用例集
- 创建环境变量
- 登录模块
- *登录成功接口*
- 其他接口共性分析
- 实现其他接口
- 员工管理模块
- 总析
- 提取令牌
- 添加员工
- 提取添加员工的id
- 查询员工
- 修改员工
- 查询员工列表
- 批量运行测试用例
- 生成测试报告
#接口
def eat (something):
print(f'小鸟吃{something}')
#使用接口,传递数据
def bird():
eat('1')
bird()
小鸟吃1
接口测试
协议:规则,要求通信双方必须严格遵守
作用:在网络环境中,唯一的定义一个数据资源
整体格式(Content-Type:描述请求体的数据类型)
fiddler抓包验证
List item
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ow2LGo0i-1650257047431)(https://img-blog.c sdnimg.cn/289a0d16ce0a4a8fa7d78f156d8377cd.png)]
结构
http://ihrm-test.itheima.net/#/settings/index
开发者工具
node.js安装成功
newman安装成功
成功!!
http://yun.itheima.com/gongju/c144/p/3.html
案例:从接口文档,获取登录接口的http请求,使用postman发送
创建collections
点笔修改名称
ctrl+s 保存
导出用例集
使用默认即可
直接点击import即可导入
//断言响应状态码是否为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
成功
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
3.断言响应体是否等于某个字符串(对象)
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
4.断言json数据
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
在send按钮点击后,第一时间被执行,在postman内部实际http请求之前
时间戳工具
案例:
3.查看写入的变量
应用于多个http请求之间,有数据关联,或依赖关系时
实现步骤
案例
实现步骤:
//从响应结果中,获取城市名
var jsonData = pm.response.json()
var city =jsonData.weatherinfo.city
//将城市名写入到全局变量
pm.globals.set("glb_city",city)
4.
选中一个集合→run→执行
#完整的命令
newman run xxxx.json -e 环境变量文件 -d外部数据文件 -r html --reporter-html-report 第一个测试报告.html
#现在 终端 ,测试一下
newman run xxxx.jsom
#运行
newman run 批量执行测试用例.postman_collection.json
#保存
newman run 批量执行测试用例.postman_collection.json -r html --reporter-html-report 第一个测试报告.html
5.postman参数化
数据文件简介
编写csv文件→点击用例集→run→runner→select file→选中文件→点击预览,进行校验
编写json文件→
案例
http://ihrm-test.itheima.net/#/settings/index
添加环境
请求接口
断言
pm.test("断言响应状态码为 200", function () {
pm.response.to.have.status(200);
});
pm.test("断言success的值为true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
pm.test("断言code的值为10000", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(10000);
});
pm.test("断言message的值为 *** 作成功!", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql(" *** 作成功!");
});
pm.test("断言data的值为9811b176-7013-4d6f-bd3a-d4e8697762ae", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.data).to.eql( "21fa8d87-9b52-4367-a968-0b7d8f285385");
});
其他接口共性分析
实现其他接口
员工管理模块
总析
提取令牌
//拼接data的值,添加Bearer和空格。组成合法令牌
//获取响应体
var jsonData =pm.response.json()
//提取data的值,保存在tmp_token中
var tmp_token = jsonData.data
//拼接Bearer和空格到data值的前面 “Bearer”+“ ”+tmp_token
pm.environment.set("env_token","Bearer"+" " + tmp_token)
添加员工
注意保证手机号的唯一性
//获取添加员工的响应体
var jsonData = pm.response.json()
//提取员工id
var tmp_id=jsonData.data.id
// 设置到环境变量
pm.environment.set("env_emp_id",tmp_id)
查询员工
{{base_url}}/api/sys/user/:target
# :target 是路径参数
修改员工
查询员工列表
改url即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)