接口测试框架实战(二)| 接口请求断言

简介: 题图引用自 Real Python接口请求断言是指在发起请求之后,对返回的响应内容去做判断,用来查看是否响应内容是否与规定的返回值相符。在发起请求后,我们使用一个变量 r 存储响应的内容,也就是 Response 对象。Response 对象有很多功能强大的方法可以调用,比如直接获取响应头,获取 Unicode 编码后的响应内容,获取二进制的响应内容,获取原始的响应内容等等。获得响应头
更多技术文章分享和免费资料领取
https://qrcode.testing-studio.com/f?from=Aliyun&url=https://ceshiren.com/t/topic/16586
题图引用自 Real Python
接口请求断言是指在发起请求之后,对返回的响应内容去做判断,用来查看是否响应内容是否与规定的返回值相符。
在发起请求后,我们使用一个变量 r 存储响应的内容,也就是 Response 对象。
Response 对象有很多功能强大的方法可以调用,比如直接获取响应头,获取 Unicode 编码后的响应内容,获取二进制的响应内容,获取原始的响应内容等等。
获得响应头
获得编码后的响应值:
还可以使用 r.raw 获得原始响应内容,r.content 获得二进制的响应内容,另外还有编码为 JSON 格式的响应内容,会在后面的章节进行详述。
安装 JSON 库:
响应状态码断言:
assert 是 Python 的内置函数,用来判断表达式,当表达式条件为 False 的时候就会触发异常。
r.status_code 是 Response 对象内的一个方法,用于获得返回值的状态码。
assert r.status_code==200 就是在判断状态码是否等于200,如果不等于200则会抛出异常。
反例:响应状态码断言,判断响应状态码是否为400
从上个例子可以知道,这个响应状态码应该是 200,因为与 400 不相等,所以抛出了异常。
在测试过程中,大部分接口的返回值都为 JSON 格式。所以,掌握如何对 JSON 响应值进行断言这一技能,可以更轻松的完善接口自动化测试用例。
r.json() 对于响应值 r 先进行 JSON 编码:
对于字典格式,可以通过 dict["key"] 的方式拿到 value 值.
对于列表格式,可以通过 list[index] 拿到对应索引的 value 值。
在 JSON 的断言之中,主要应用的就是字典和列表自带的查找方法。如果碰到混合或者嵌套的情况,只需要一层一层拨开,直到找到需要进行断言的字段即可。
字典格式断言,判断 headers 中的 Host 为 httpbin.org

1.第一层是 key 值为 "header" 的 value
2.第二层是 key 值为 "Host" 的 value
3.判断 key 值为 "Host" 的 value 值是否与 "httpbin.org" 相等
字典混合列表格式断言,判断 hogwarts 对应的列表的第一位是 'a'

4.第一层是 key 值为 'form' 的 value
5.第二层是 key 值为 'hogwarts' 的 value
6.第三层是索引为 0 的 value
7.判断上一步索引为 0 的 value 是否等于 "a"
更多内容,我们在后续章节详细解读。

原文链接

⬇️ 点击“下方链接”,提升测试核心竞争力!

更多技术文章分享和免费资料领取
https://qrcode.testing-studio.com/f?from=Aliyun&url=https://ceshiren.com/t/topic/16586
相关文章
|
3天前
|
设计模式 安全 测试技术
深入理解与应用自动化测试框架 — 以Selenium为例网络防线的构筑者:洞悉网络安全与信息安全的核心要素
【5月更文挑战第29天】 在快速迭代的软件开发过程中,自动化测试已成为提高测试效率、确保软件质量的重要手段。本文将深入探讨自动化测试框架Selenium的核心概念、架构以及实际应用中的关键技巧,旨在为读者提供一篇系统性的分析与实践指南。文章首先概述了自动化测试的必要性和Selenium框架的基本特征;随后详细剖析了Selenium的组件结构,并结合实例讲解如何高效地设计和执行测试用例;最后,讨论了当前自动化测试面临的挑战及未来发展趋势。
|
1天前
|
敏捷开发 自然语言处理 JavaScript
探索自动化测试框架的选择标准与实践应用
【5月更文挑战第30天】 在软件开发的复杂多变环境中,自动化测试已成为确保产品质量和加快上市速度的关键。本文深入探讨了选择自动化测试框架时需考虑的标准,并通过具体案例分析如何在项目中成功实施。我们将覆盖框架选择过程中的性能、可靠性、易用性及可维护性四个核心要素,并结合业界最佳实践,提出一套实用的框架评估与应用流程。
|
2天前
|
Dart 前端开发 测试技术
移动应用开发的未来:跨平台框架与原生系统的融合深入理解软件测试中的持续集成与持续部署(CI/CD)
【5月更文挑战第30天】 在本文中,我们将深入探讨移动应用开发领域的最新趋势:跨平台开发框架与原生操作系统的融合。随着移动设备成为日常生活的核心,高效、灵活且性能卓越的应用程序需求日益增长。文章分析了当前主流的跨平台工具如React Native和Flutter,并探讨了它们如何与iOS和Android等原生系统相互作用,以及这种融合对开发者、用户和整个移动生态系统意味着什么。我们还将预测未来可能的技术发展,并提出相应的策略建议。
|
2天前
|
敏捷开发 监控 测试技术
深入探索自动化测试框架的选择与构建
【5月更文挑战第30天】在追求高效、可靠的软件发布周期中,自动化测试成为确保产品质量的关键。本文将探讨如何选择合适的自动化测试框架并指导构建一个符合项目需求的框架体系。我们将通过分析不同测试场景和需求,评估Selenium、Appium和JUnit等流行工具的优缺点,并提供策略性建议,以助读者构建出既灵活又稳定的自动化测试环境。
10 3
|
2天前
|
前端开发 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第30天】 本文将深入探讨和分析自动化测试框架Selenium的设计理念、架构以及其在实际开发中的应用。Selenium作为一款广泛使用的开源自动化测试工具,它的灵活性和高效性使其成为Web应用测试的首选工具。文章将从Selenium的核心组件出发,详细解析其工作原理,并结合实际案例讨论如何优化测试脚本,提高测试效率。此外,还将介绍Selenium Grid的使用,展示如何通过分布式测试加速测试过程。最后,文章将展望Selenium在未来技术演进中可能面临的挑战和发展方向。
|
2天前
|
设计模式 敏捷开发 监控
深入探索自动化测试框架的选择与构建
【5月更文挑战第30天】软件测试是确保产品质量的关键环节,随着敏捷开发的流行及持续集成的普及,自动化测试成为提升效率、保障质量的重要手段。本文将探讨如何根据项目需求选择适合的自动化测试框架,并提供一个构建高效自动化测试框架的策略。文中不仅分析了当前流行的自动化测试工具,还提出了一套结合最佳实践的构建流程,旨在帮助团队打造可靠且易于维护的自动化测试环境。
|
2天前
|
敏捷开发 监控 测试技术
探索自动化测试框架的构建与实践
【5月更文挑战第30天】 在软件开发周期中,测试环节是保证产品质量的关键步骤。随着敏捷开发和持续集成的普及,自动化测试成为提高测试效率和准确性的重要工具。本文将深入探讨自动化测试框架的构建与实践,重点分析其设计原则、关键技术选型以及实施过程中的挑战和解决方案。通过对不同自动化测试工具的比较,我们将展示如何根据项目需求定制合适的测试框架,并分享一些实用的优化技巧,以期为软件测试人员提供参考和启发。
|
3天前
|
测试技术 API 持续交付
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第29天】 在现代软件开发过程中,自动化测试已成为提升效率、保障质量的关键手段。Selenium作为一款广受欢迎的自动化测试框架,其设计理念与实现机制对于软件测试工程师至关重要。本文将深入探讨Selenium的核心架构,分析其支持多种编程语言与浏览器的能力,以及如何通过WebDriver协议与浏览器进行交互。同时,我们还将讨论Selenium Grid的作用和优势,以及在实际测试场景中如何高效利用Selenium进行测试用例的设计和执行。
|
3天前
|
前端开发 JavaScript 测试技术
深入理解自动化测试框架:Selenium与Appium的比较
【5月更文挑战第29天】 在快速发展的软件行业中,自动化测试已成为保证软件质量和缩短发布周期的关键。本文深入分析了两个领先的自动化测试框架——Selenium和Appium,探讨了它们的核心原理、应用场景以及优缺点。通过细致的比较,为软件开发团队提供选择合适测试工具的参考依据,并强调了在不同环境下如何优化测试流程以提高测试效率和准确性。
|
4天前
|
存储 XML 测试技术
深入理解自动化测试中的数据驱动框架
【5月更文挑战第27天】 随着软件开发周期的加速,自动化测试成为确保产品质量和缩短上市时间的关键因素。数据驱动测试(DDT)作为一种高效的自动化测试策略,允许测试人员通过外部数据源控制测试用例的执行流程。本文将探讨数据驱动框架的核心概念、实施步骤以及在复杂测试场景中的应用优势,为读者提供一种灵活、可扩展的自动化测试解决方案。