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 让我对接口测试有了更深的理解,也让我意识到了测试在软件开发中的重要性。它不仅仅是为了找出错误,更是为了确保整个系统能够稳定、安全地运行。

 

posted @ 2025-05-21 11:24  Code13  阅读(17)  评论(0)    收藏  举报