手把手带你设计接口自动化测试用例(二):根据接口信息设计测试用例

简介: 上一篇文章 手把手带你设计接口自动化测试用例(一):提取接口信息并分析 详细介绍了如何提取并分析登录、发布、修改、删除、查询等接口信息,这篇文章来看一下如何根据接口信息设计测试用例。ZrLog 系统接口测试用例的字段可以设计为 3 个部分,分别是主测试用例的字段(重要)、配置信息的字段、执行结果记录的字段。下面分别介绍这 3 部分字段的名称和含义。

1、设计主测试用例的字段


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


表1 主测试用例的字段

image.png


2、设计配置信息的字段


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


表2 配置信息的字段

image.png


3、设计执行结果记录字段


执行结果记录的字段主要用来存放测试用例执行的最终结果及相关的信息。具体需要设置哪些字段可根据项目情况灵活决定。


在 ZrLog 系统中对执行结果记录设置了以下常用的 5 个字段,如表3 所示。


表3 执行结果记录的字段

image.png


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


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


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


5783138238d186149afe8c543564cb7b.png

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


b659687be26dd14c9736cf3d13839318.png

图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,则表明此测试用例执行没有通过。


5、设计配置信息的内容


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

image.png

图3 配置信息字段的内容


6、执行结果记录的内容


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


下一篇文章将分享如何建立数据库实例和主测试用例表,敬请期待!


目录
相关文章
|
11天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
43 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
64 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
67 4
|
1月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
54 4
|
9天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
18天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
43 4
|
1月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。

热门文章

最新文章

下一篇
无影云桌面