自动化用例编写

1.可维护性
(1)用例不能写的太复杂,如果太复杂,一旦失败,需耗费大量时间定位,不超过15步。
(2)对于流程过长的用例,可以拆分成N个小模块,从而避免一个步骤失败,导致整个用例全部失败
(3)多使用全局变量,例如多个用例引用的变量,如果使用局部变量,则值发生改变时,只需修改全局变量即可

2.可理解性
(1)用例标题简介明了,后续人员维护时,可通过标题了解到用例实现了哪些业务逻辑,例如
(用户使用错误密码,登陆失败) 业务操作+预计结果
(2)用例步骤添加适量的注释,为后续调试提供必要思路

3 用例实现基线化
(1)当前版本不涉及修改的地方,用例应该继承现网版本的基线用例,检验点不能改变,如果需要改变,则要和开发确认,是否会对业务功能有影响

4 高效率
(1)能实现并行的,尽量避免串行,如果多个用例对同一数据进行了修改,可以优化调整避免同时操作同一数据,否则只能进行串行操作

5自动化用例执行完毕后,需对测试数据进行还原,以免干扰其他用例,例如 (自动化用例将某个账号设置为销号状态,如果恢复成正常状态,则会影响此账号的下一次使用)

### 如何在 Postman 中编写和运行自动化测试用 在 Postman 中编写和运行自动化测试用是一个系统化的过程,涉及接口测试用的设计、断言的设置以及批量运行的功能。以下是关于如何实现这一目标的详细说明。 #### 1. 编写测试用 在 Postman 中,测试用通常通过脚本语言 JavaScript 来编写,并且可以在请求的 `Tests` 标签中添加。测试用的核心是设置检查点和断言,确保接口返回的结果符合预期[^4]。 如,假设我们正在测试一个返回用户信息的 API 接口,以下是一个简单的测试用: ```javascript // 检查响应状态码是否为 200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 验证响应体中的字段是否存在且正确 pm.test("Response body has correct data", function () { var jsonData = pm.response.json(); pm.expect(jsonData.id).to.eql(1); // 检查 id 是否为 1 pm.expect(jsonData.name).to.eql("John Doe"); // 检查 name 是否为 "John Doe" }); ``` #### 2. 设置断言 断言是测试用的关键部分,用于验证接口的实际输出是否与预期一致。Postman 提供了丰富的断言方法,如 `pm.expect()` 和 `pm.response.to.have`,可以用来检查响应的状态码、响应头、响应体等[^4]。 - **状态码断言**:验证 HTTP 响应状态码是否正确。 - **响应头断言**:验证响应头中的特定字段是否存在或具有正确的值。 - **响应体断言**:验证 JSON 或 XML 响应体中的数据是否符合预期。 #### 3. 批量运行测试用 为了提高效率,Postman 提供了 `Runner` 功能,允许用户批量运行多个测试用。在使用此功能之前,必须确保每个测试用都已正确设置了断言脚本[^1]。 以下是运行批量测试的步骤: 1. 在 Postman 中选择需要运行的集合(Collection)。 2. 点击右上角的 `Runner` 按钮。 3. 在弹出的窗口中配置运行参数,如环境变量、迭代次数等。 4. 点击 `Run` 开始执行测试。 5. 测试完成后,Postman 会生成一份详细的测试报告,显示每个测试用的执行结果。 #### 4. 测试用的规范性 在编写自动化测试用时,需要遵循一定的规范以确保其有效性。这包括但不限于以下几点[^2]: - **明确测试目标**:每个测试用都应该有一个清晰的目标,如验证某个功能模块的正确性。 - **覆盖边界条件**:设计测试用时,应考虑正常场景和异常场景,尤其是边界条件和特殊输入。 - **独立性**:测试用应尽量保持独立,避免依赖其他用的结果。 - **可维护性**:编写易于理解和修改的测试脚本,便于后续维护和扩展。 #### 5. 设计接口测试用 接口测试用的设计是自动化测试的基础。在设计过程中,应关注以下几个方面[^3]: - **输入参数**:明确接口所需的参数及其可能的取值范围。 - **预期输出**:定义接口返回的数据结构和内容。 - **异常处理**:考虑接口可能出现的错误情况,并设计相应的测试用。 --- ### 示代码 以下是一个完整的测试用,包含状态码、响应头和响应体的断言: ```javascript // 检查响应状态码是否为 200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 验证响应头中的 Content-Type 是否为 application/json pm.test("Content-Type is application/json", function () { pm.response.to.have.header("Content-Type"); pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json"); }); // 验证响应体中的字段是否存在且正确 pm.test("Response body has correct data", function () { var jsonData = pm.response.json(); pm.expect(jsonData.id).to.eql(1); // 检查 id 是否为 1 pm.expect(jsonData.name).to.eql("John Doe"); // 检查 name 是否为 "John Doe" }); ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值