5.16日报
完成软件测试实验五
实验项目名称:实验五
一、 实验目的
1、了解什么是接口测试。
2、理解HTTP工作原理。
3、掌握接口测试用例设计。
4、掌握接口测试工具Postman的使用
二、 实验内容
实验任务 :
对iHRM人力资源管理系统中的登录模块和员工管理模块进行接口测试。
三、 实验步骤及结果
修改名字
创建子文件夹并命名
创建请求
请求改为post,将实验中的url和相关代码输入进入
http://ihrm-java.itheima.net/api/sys/login
{
"mobile":"13800000002",
"password":"929itheima.CN032@.20250507"
}
点击send,得到如下结果
保留data中的值,将其作为后面登录的参数
新建员工接口测试,点击headers,输入url
http://ihrm-java.itheima.net/api/sys/user?page=2&size=1
再输入Authorization,value里输入之前保留的data,最后点击send
得到如下结果
创建员工添加请求,输入url
http://ihrm-java.itheima.net/api/sys/user,改为post
再输入json文本
{
"username":"牛哥",
"mobile":"15111955336",
"workNumber":"20222022"
}
点击send,出现以下结果
创建员工查询请求,输入url
http://ihrm-java.itheima.net/api/sys/user?page=2&size=1&?id=1066370498633486336
修改环境变量,改成如图所示
并应用
在登录请求中替换url点击send
按照实验中的要求,输入断言代码,这里附上登录成功的断言代码
// 断言响应状态码为200
pm.test("状态码应为200", function () {
pm.response.to.have.status(200);
});
// 断言 success 为 true
pm.test("success 应为 true", function () {
pm.expect(pm.response.json().success).to.be.true;
});
// 断言 code 为 10000
pm.test("code 应为 10000", function () {
pm.expect(pm.response.json().code).to.eql(10000);
});
// 断言 message 为 "操作成功!"
pm.test("message 应为 操作成功!", function () {
pm.expect(pm.response.json().message).to.eql("操作成功!");
});
// 可选:断言 data 存在且非空(根据需求)
pm.test("data 应存在且非空", function () {
const data = pm.response.json().data;
pm.expect(data).to.not.be.null;
pm.expect(data).to.not.be.undefined;
});
以下为结果
创建登录失败请求,并修改密码是密码错误
输入登录失败断言代码
// 断言响应状态码为200(假设接口返回状态码为200,但业务逻辑失败)
pm.test("状态码应为200", function () {
pm.response.to.have.status(200);
});
// 断言 success 为 false
pm.test("success 应为 false", function () {
pm.expect(pm.response.json().success).to.be.false;
});
// 断言 code 为 20001
pm.test("code 应为 20001", function () {
pm.expect(pm.response.json().code).to.eql(20001);
});
// 断言 message 为 "用户名或密码错误"
pm.test("message 应为 用户名或密码错误", function () {
pm.expect(pm.response.json().message).to.eql("用户名或密码错误");
});
// 可选:断言 data 为 null(根据需求)
pm.test("data 应为 null", function () {
pm.expect(pm.response.json().data).to.be.null;
});
得到如下结果
进行员工接口测试断言代码
// 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
// 断言响应消息success=true
pm.test("断言响应消息success=true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
// 断言响应消息code=10000
pm.test("断言响应消息code=10000", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(10000);
});
// 断言响应消息message="操作成功!"
pm.test("断言响应消息message='操作成功!'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("操作成功!");
});
以下为结果
创建员工失败接口测试
输入断言代码:
// 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
// 断言响应消息success=false
pm.test("断言响应消息success=false", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(false);
});
// 断言响应消息code=99999
pm.test("断言响应消息code=99999", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(99999);
});
// 断言响应消息message="抱歉,系统繁忙,请稍后重试!"
pm.test("断言响应消息message='抱歉,系统繁忙,请稍后重试!'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("抱歉,系统繁忙,请稍后重试!");
});
然后是员工添加的相关步骤
断言代码:
// 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
// 断言响应消息success=true
pm.test("断言响应消息success=true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
// 断言响应消息code=10000
pm.test("断言响应消息code=10000", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(10000);
});
// 断言响应消息message="操作成功!"
pm.test("断言响应消息message='操作成功!'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("操作成功!");
});
以下为结果:
创建一个员工添加失败的请求
输入断言代码:
// 优化后的断言代码(减少重复并增强可维护性)
try {
var jsonData = pm.response.json();
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
pm.test("断言响应消息success=false", function () {
pm.expect(jsonData.success).to.eql(false);
});
pm.test("断言响应消息code=99999", function () {
pm.expect(jsonData.code).to.eql(99999);
});
pm.test("断言响应消息message='抱歉,系统繁忙,请稍后重试!'", function () {
pm.expect(jsonData.message).to.eql("抱歉,系统繁忙,请稍后重试!");
});
} catch (error) {
console.error("Error parsing JSON response:", error);
}
以下为结果
接下来是员工查询
输入断言代码
// 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
// 断言响应消息success=true
pm.test("断言响应消息success=true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
// 断言响应消息code=10000
pm.test("断言响应消息code=10000", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(10000);
});
// 断言响应消息message="操作成功!"
pm.test("断言响应消息message='操作成功!'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("操作成功!");
});
以下为结果
创建员工查询失败请求
输入断言代码:
// 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
// 断言响应消息success=false
pm.test("断言响应消息success=false", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(false);
});
// 断言响应消息code=99999
pm.test("断言响应消息code=99999", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(99999);
});
// 断言响应消息message="抱歉,系统繁忙,请稍后重试!"
pm.test("断言响应消息message='抱歉,系统繁忙,请稍后重试!'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("抱歉,系统繁忙,请稍后重试!");
});
以下为结果
生成报告:
四、 个人体会
用 Postman 做接口测试,感觉就像是在和后端开发人员对话。通过这个工具,我能直接看到数据是怎么在系统里流动的,哪些地方可能出问题。刚开始用的时候,感觉挺新鲜的,因为能直接看到请求发出去,然后后端怎么响应,就像是在看一场幕后的表演。
用多了之后,我发现这不仅仅是个测试工具,它还能帮我更好地理解整个系统是怎么工作的。比如,我可以模拟不同的请求,看看后端能不能正确处理,这让我对系统的稳定性有了更深的认识。
而且,Postman 用起来挺方便的,我可以保存常用的请求,做成集合,这样下次再用的时候,直接拿来用就行了,省了不少时间。还有,它支持自动化测试,这个功能特别强大,我可以写一些脚本来自动执行测试,然后生成报告,这样我就能更专注于分析测试结果,而不是重复的操作。
总的来说,Postman 让我对接口测试有了更深的理解,也让我意识到了测试在软件开发中的重要性。它不仅仅是为了找出错误,更是为了确保整个系统能够稳定、安全地运行。

浙公网安备 33010602011771号