关注分享主机优惠活动
国内外VPS云服务器

测试金字塔,你处于第几级?(你在金字塔的最底层)

摘要:本文分享自敏捷小智撰写的华为云社区测试金字塔(你处于第几级?)。 随着微服务架构的激增,测试金字塔中的中间层接口测试已成为流行趋势。 与单元测试相比,服务接口测试涵盖的范围更广。

摘要:软件质量是衡量软件成功与否的重要标准。 在软件生命周期中,自动化测试金字塔为每个人提供了一种测试策略,可以根据项目的具体情况优化测试活动,最终提高软件质量。

本文由华为云社区分享《测试金字塔,你处于第几级?》 》,作者:敏捷小智。

引言

软件质量是衡量软件成功与否的重要标准。在软件生命周期中,如果没有适当的质量控制,产品质量就会恶化。通过标准化研究可以保证软件质量

测试金字塔

软件测试随着软件的发展和规模而诞生,随着软件变得越来越大、越来越复杂,软件测试已经从早期的简单演变而来。从“调试”到今天的自动化测试。 这里不赘述,什么是自动化测试?自动化测试是将人类测试行为转换为机器执行的过程,通常使用特定的工具或框架。 虽然它不能完全取代手动测试,但与手动测试相比,自动化测试可以降低人力成本,减少重复性任务,使测试活动更快、更高效。

测试金字塔是一个用于自动化测试过程的金字塔形战略结构,有助于指导所使用的每一层测试。 软件开发过程。 自动化测试的投资百分比最初由 Mike Cohn 在其 2009 年出版的《Scrum 敏捷软件开发》一书中提出。 正如迈克·科恩在他的书中指出的那样: 从上到下,测试金字塔分为三层:UI 测试、服务/接口测试和单元测试。您越接近金字塔测试活动的底部,您需要投入的工作就越多。 这意味着单元测试需要最多的工作,其次是接口测试,然后是 UI 测试。

测试金字塔的最低层 - 单元测试

单元测试是代码级测试,编写成本低且速度快。 执行速度。 极限编程中的 TDD 测试驱动开发通常围绕单元测试进行,因为可以快速识别问题。 单元测试可以被认为是最低级别的测试活动。 关于单元测试有很多内容,因此我不会在这里过多介绍。

测试金字塔的中间层 - 测试接口

随着微服务架构变得越来越流行,API 也变得越来越常见。已成为。 趋势。 因此,API的持续测试成为DevOps的重点之一。 如果没有 API 接口测试,实施微服务架构对您的企业来说将是一场灾难。

接口测试是测试系统组件之间的接口的测试。 主要用于测试系统与其他外部系统之间以及系统内部子模块之间的接口。 接口测试不仅关注单个接口的参数值和参数值组合的合理性,还可以让您验证产品功能的完整性和正确性。 与单元测试相比,服务/接口测试覆盖的范围更广。

接口测试的要点是:

检查接口参数发送是否正确。 接口函数实现的正确性。 输出结果的准确性。 对各种异常情况的完整性和容错性。 理性。 如何运行接口测试

Swagger 是一个允许您生成、编写和调用 RESTFUL 风格的 API 的框架。 Swagger官网的示例demo——petstore提供了一组接口,可以让你添加、删除、修改、查看宠物信息。 本文使用这些接口进行接口测试。

1、准备工作

首先通过华为云DevCloud的云测试功能的“测试用例”创建一个测试用例,用于接口测试。

petstore 项目的 URL 设置为默认环境变量,此处名为“pethost”。 测试用例可以直接以“$$petstore”的形式调用该变量。

不需要设置环境变量,但是每次测试都需要输入宠物店域名,非常繁琐并设置在环境中。 使用变量可以减少您的工作量。 您可以在云测试中输入“$$”直接关联预先配置的环境变量。

2. 创建“添加宠物信息”的接口测试用例。

在 Pet Store 项目中,“添加宠物信息”是通过发布请求完成的。 请求的请求体为:

创建“URL请求”并将请求类型设置为“POST”。 本例中请求地址为“$${pethost}/v2/pet”,通过在请求体中输入上述Json字符串完成请求部分设置。

接下来,设计预期的检查结果。 如果有任何其他响应,则预期返回值为 200,即成功。 代码测试失败。

同时需要提取响应体的一些参数,以方便后续业务测试。 这里,我们提取相应主体中category.id的值并将其分配给局部变量“id”。

3. 运行用例并检查返回值

配置请求后,运行用例并运行它检查返回值。 响应码为200,表示结果成功。 如果您想查看测试失败的场景,可以尝试使用其他参数,而不是遵循参数列表。

您可以在“最后结果”的“响应”中查看本次请求的返回值。 可以使用上述“响应”来提取返回值中包括的各种参数。 用于其他测试。

4、创建“查询宠物信息”接口测试用例

创建后的宠物信息 完成后,检查宠物是否存在确实是使用 Get 请求添加的。

直接调用之前,先创建一个“URL请求”,设置请求类型为“GET”,请求地址使用“$id”。 接口返回的ID(同“$$”,“$”可以直接关联一个默认的局部变量)

响应代码设置为 200,测试预计会通过。

5. 运行用例看看是否可以查询宠物信息。

执行用例后。 可以看到响应码为200,符合预期,测试成功。

通过“id”查询宠物信息。 也和我们之前创建的宠物信息相符,说明这两个特征是没问题的。

6. 创建“删除宠物信息”。 接口测试用例

测试完成后,必须删除测试数据。

创建“URL请求”,设置请求类型为“DELETE”,同样通过“$id”删除对应的宠物信息。 /p>

响应代码设置为 200,测试预计会通过。

7. 删除测试用例。

当您运行测试用例时,您将看到响应代码为 200。 正如预期,测试成功。

还可以看到响应正文中宠物信息已被删除。

上面是一个简单的接口测试的例子,说明了接口测试可以测试单个接口的功能。 我是。 或者测试产品链接多个模块的能力。

测试金字塔的顶部 - UI 测试

在测试金字塔中,UI 测试的范围更广,更接近业务端,但它们的创建成本更高,运行速度也不够快和稳定。也很困难。 因此,测试设计应减少对接口层的测试。 如果有场景或逻辑可以通过较低级别的测试覆盖,则将其放在较低级别,以加快测试速度并节省资源。

摘要

严格的测试活动对于提高软件质量至关重要。 自动化测试金字塔为每个人提供了测试策略。 测试活动应根据项目的具体情况进行优化,最终提高软件的质量。

近期华为云与学校联合推出的返校活动,邀请了华为专家以及获得21份工作邀请的优秀学长。 以在线直播+赛道挑战+豪华奖品的形式进行,帮助学生了解华为前沿的研发理念和先进技术,鼓励他们利用华为云的各类产品开发场景应用,目的是让大学生有所收获。体验并加深理解。 企业技术应用将校园学习和企业技术应用相结合,帮助大学生做出职业选择。 。

奖品多多,快来看看:华为云DevCloud&AI&IoT返校挑战赛

点击关注,第一时间了解华为云新技术~

未经允许不得转载:主机频道 » 测试金字塔,你处于第几级?(你在金字塔的最底层)

评论 抢沙发

评论前必须登录!