手把手教你设计接口自动化测试用例:根据接口信息设计测试用例

目录

01

设计主测试用例的字段

02

设计配置信息的字段

03

设计执行结果记录的字段

04

设计主测试用例内容并解决关联关系

05

设计配置信息的内容

06

执行结果记录的内容

07

参考建议


01

设计主测试用例的字段

主测试用例的字段一般包含用例标识的字段、请求信息的字段和响应信息的字段,响应信息的字段一般作为接口用例执行结果的断言字段;另外由于本书的接口涉及 cookies 信息及接口之间的关联信息,所以需要加上 cookies 字段及接口关联字段。基于以上规则,ZrLog 系统主测试用例的字段设计如表1 所示。

表1 主测试用例的字段

02

设计配置信息的字段

配置信息的字段一般用来存放接口自动化框架中所需要的各类环境配置信息,具体需要哪些字段,在实际中可根据项目需求灵活设置,在 ZrLog 系统中对配置信息设置了 4 个常用字段,如表2 所示。

表2 配置信息的字段

03

设计执行结果记录的字段

执行结果记录的字段主要用来存放测试用例执行的最终结果及相关的信息。具体需要设置哪些字段可根据项目情况灵活决定。在 ZrLog 系统中对执行结果记录设置了以下常用的 5 个字段,如表3 所示。

表3 执行结果记录的字段

04

设计主测试用例内容并解决关联关系

接口测试用例与功能测试用例本质上并无区别,常用的设计方法有:有效、无效、边界、错误推测、场景法、正交法等。接口测试包括单接口测试和多接口测试,单接口测试是指针对单个接口的用例设计,而多接口测试是指针对多个接口的用例设计,一般是基于正向的业务流程去设计用例,并且要处理上下游接口的关联关系。

基于此规则,对于文章 手把手教你设计接口自动化测试用例:提取接口信息并分析 的 5 个接口,共设计出 11 个测试用例。其中登录接口为单接口,一共设计了 7 个用例;其他的 4 个接口为多个接口,一共设计了 4 个用例。主测试用例的内容及结构如图1、图2所示。

■  图1 主测试用例的内容及结构(1)

■ 图2 主测试用例的内容及结构(2)

用例分析如下。

第 1 个测试用例为登录接口的测试用例,使用了错误的密码进行登录,登录过程无须携带 cookies,所以 cookies 字段设置为空,登录失败后,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则代表此测试用例执行没有通过。

第 2 个测试用例为登录接口的测试用例,请求主体信息中不携带密码这个参数,登录过程无须携带 cookies,所以 cookies 字段设置为空,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则表明此测试用例执行没有通过。

第 3 个测试用例为登录接口的测试用例,请求主体信息中使用了错误的用户名,登录过程无须携带 cookies,所以 cookies 字段设置为空,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则表明此测试用例执行没有通过。

第 4个测试用例为登录接口的测试用例,请求主体信息中用户名参数使用非字符串类型的数据,登录过程无须携带 cookies,所以 cookies 字段设置为空,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则表明此测试用例执行没有通过。

第 5个测试用例为登录接口的测试用例,请求主体信息中不携带用户名参数,登录过程无须携带 cookies,所以 cookies 字段设置为空,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则表明此测试用例执行没有通过。

第 6个测试用例为登录接口的测试用例,请求主体信息中用户名为空字符串,登录过程无须携带 cookies,所以 cookies 字段设置为空,预期的业务状态码为 1。如果服务端响应的业务状态码不为 1,则表明此测试用例执行没有通过。

第 7个测试用例为登录接口的测试用例,请求主体信息中使用了正确的用户和密码进行登录,登录过程无须携带 cookies,所以 cookies 字段设置为空,登录成功之后服务端响应的预期的业务状态码为 0。如果服务端响应的业务状态码不为 0,则表明此测试用例执行没有通过。另外, 用户登录成功之后,会在服务端产生 cookies 信息。在 relation 字段中设置了 token=cookiess.admin-token,它代表的含义是取得 cookies 信息中的 admin-token 字段的值,并把这个值赋给变量 token,以便下游接口引用 token 变量而得到 cookies 的秘钥。

第 8个测试用例为发布文章接口的测试用例,在 cookies 字段中设置了{"admin-token" : "${token}"},这说明发布文章过程中需要携带 cookies信息,且 cookies 信息中键为“admin-token”,其值引用了登录接口中所设置的 token 这个变量。从 request_body 字段的信息中可以看到发布文章的标题(title 为标题参数)为“付出”,文章别名(alias 为别名参数)为“付出”。在文章发布成功后,将会产生文章的 id 号和文章的 alias (文章别名),所以又在 relation 字段中设置了 id_name=body.id,alias_ name=body.alias,它代表的含义是取到响应正文中的 id 号,并把它赋给变量 id_name;同时取到响应正文中的 alias(文章别名),并把它赋给变量 alias_name,以便下游接口可以引用这两个变量。最后,当文章发布成功之后,服务端响应的预期业务状态码为 0。如果服务端响应的业务状态码不为 0,则表明此测试用例执行没有通过。

第 9个测试用例为修改文章接口的测试用例,在 cookies 字段中设置了{"admin-token" : "${token}"},这说明修改文章过程中需要携带 cookies 信息,且 cookies 信息中键为“admin-token”,其值引用了登录接口测试用例中所设置的 token 这个变量。从 request_body 字段的信息中可以看到,文章的 id 号引用的是发布文章接口测试用例中设置的 id_name 这个变量的值,文章的 alias 引用的是发布文章接口测试用例设置的 alias_ name 这个变量,也就是说要修改的文章是 id 为 id_name 的文章,并且在修改过程中把文章的标题修改成了“付出才能杰出”。最后,在文章修改成功之后,服务端响应的预期业务状态码为 0。如果服务端响应的业务状态码不为 0,则表明此测试用例执行没有通过。

第 10 个测试用例为删除文章接口的测试用例,在 cookies 字段中设置了{"admin-token" : "${token}"},这说明文章过程中需要携带 cookies 信息,且 cookies 信息中键为“admin-token”,其值引用了登录接口测试用例中所设置的 token 这个变量。从 request_body 字段的信息中可以看到,要删除的文章的 id 号引用的是发布文章接口测试用例中设置的 id_name这个变量的值,这说明要删除的文章是 id 为 id_name 的文章。最后,在文章删除成功之后,服务端响应的预期业务状态码为 0。如果服务端响应的业务状态码不为 0,则表明此测试用例执行没有通过。

第 11 个测试用例为查询文章接口的测试用例,在 cookies 字段中设置了{"admin-token" : "${token}"},这说明查询文章过程中需要携带 cookies 信息,且 cookies 信息中键为“admin-token”,其值引用了登录接口测试用例中所设置的 token 这个变量。因为此接口的请求方式为 GET 请求,所以 request_body 字段中信息为空,请求的参数直接放在 url 中。最后,由于文章已删除,查询的结果为空才是正常的,服务端响应的预期业务状态码应该为 0。如果服务端响应的业务状态码不为 0,则表明此测试用例执行没有通过。

05

设计配置信息的内容

本框架中所涉及的配置信息是被测环境服务器的 IP 地址,在配置信息中设置服务端的 IP 地址,其原因在于可以将服务器的 IP 地址从接口地址中分离出来,主要是因为一旦服务器的 IP 地址要改变,只需要在配置信息的字段进行更改便可,而不需要到每个接口用例当中对 url 中的 IP 地址进行一一更改,以实现公共数据的分离。在实际项目中具体需要在配置信息的字段中设置哪些内容,可根据项目需求灵活设置。ZrLog 系统配置信息字段的内容如图3所示。

■ 图3 配置信息字段的内容

06

执行结果记录的内容

执行结果记录字段的内容是由程序运行之后自动填充,无须手工填写。

07

参考建议

好了 学习也就到此结束了 想了解更多相关知识请关注我吧!下面是小编想对读者大大们写的一封信哦! 记住要认真读哦!

 感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白      

 ⑤ Python学习路线图(告别不入流的学习) 
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号768747503备注(csdn999)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦
   ————————————————
「学习资料 笔记 工具 文档领取」

图片

 扫描二维码,
备注“csdn999”
小姐姐邀你一起学习哦~~
和志同道合的测试小伙伴一起讨论测试技术吧!

   一定一定一定 要备注暗号:优快云999
   ————————————————

编写接口自动化测试是确保API功能正确性、性能和安全性的重要手段。使用Python进行接口自动化测试,可以利用一些强大的库来简化开发过程,并提高测试效率。 ### 接口自动化测试实践指南 #### 1. **选择合适的工具** 在Python中,常用的接口测试库包括 `requests` 和 `httpx`。其中,`requests` 是最流行的HTTP客户端之一,它简单易用,适合大多数的接口测试需求。如: ```python import requests response = requests.get('https://api.example.com/data') assert response.status_code == 200 ``` #### 2. **设计测试用例** 测试用例设计应涵盖正常场景和异常场景。以下是一些关键点: - **正常请求**:验证接口是否返回预期结果。 - **错误输入**:测试无效参数或格式错误时的响应。 - **边界条件**:如最大值、最小值等极端情况。 - **安全测试**:尝试注入攻击(SQLi/XSS)等以检查安全性。 #### 3. **数据驱动测试** 为了减少重复代码并提高灵活性,可以采用数据驱动的方法。通过从外部文件(如JSON或CSV)读取测试数据,使得同一个测试逻辑能够处理多种输入组合。示如下: ```python import json import requests with open('test_data.json') as f: test_cases = json.load(f) for case in test_cases: response = requests.post('https://api.example.com/endpoint', data=case['input']) assert response.json() == case['expected'] ``` #### 4. **集成到持续集成系统** 将自动化测试脚本集成到CI/CD管道中,可以在每次提交代码后自动运行测试,从而快速发现潜在问题。Jenkins、GitLab CI 和 GitHub Actions 都支持与Python项目的无缝集成[^2]。 #### 5. **报告生成与结果分析** 利用第三方库如 `allure-pytest` 或 `pytest-html` 可以生成详细的测试报告,帮助团队更好地理解测试覆盖率及失败原因。此外,还可以设置邮件通知机制,在测试失败时及时提醒相关人员。 #### 6. **维护与优化** 随着项目的演进,定期更新和优化测试脚本是非常必要的。这包括调整测试策略以适应新的业务需求、修复因环境变化而失效的测试用例等。同时,保持良好的文档记录有助于新成员快速上手[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值