引言 接口测试执行完后,我们需要进行断言,断言的主要目的是用代码来判断实际结果和预期结果是否一致,这跟手工测试中用肉眼去判断是一样的思路。既然这样,我们可以将已知的预期结果和未知的实际结果简单的封装成一个类,然后写一个比较的函数来判断,最后得到结果。 知识点预热 在讲代码之前,先了解一下python的运算符is和==。可能有些人经常用,但是却不知道是什么意思,知其然而不知其所以然。 python对象包括三个基本要素:id(身份标识)、type(数据类型)和value(值)。 1、”is” 是身份运算符,判断两个对象是否相同,是判断id是否相同,也就是内存地址是否相同。 2、”==”是比 在接口测试过程中,验证接口返回的结果是否符合预期是至关重要的步骤。这通常涉及到断言操作,即比较实际结果和预期结果是否一致。本文主要探讨如何在Python中对接口测试结果集进行封装,以便更高效地进行比较和断言。 我们需要理解Python中的两个关键比较运算符:“is”和“==”。这两个运算符虽然都是用来比较对象,但它们的含义不同: 1. `is` 运算符用于检查两个对象是否是同一个对象,即它们在内存中的位置(ID)是否相同。如果两个对象引用的是同一个内存地址,`is` 返回 `True`;否则,返回 `False`。例如,对于整数和字符串,Python可能会缓存一些小整数和短字符串,使得它们的 `is` 比较可能为 `True`。 ```python # 示例: a = 123 b = 123 print(a is b) # 输出:True c = "hello" d = "hello" print(c is d) # 输出:True ``` 2. `==` 运算符则是用来比较两个对象的值是否相等,而不考虑它们的内存位置。对于非原始类型(如列表、元组、字典、集合),即使值相同,`is` 通常也会返回 `False`,因为它们在内存中是不同的对象。 ```python # 示例: e = [1, 2, 3] f = [1, 2, 3] print(e == f) # 输出:True print(e is f) # 输出:False ``` 了解了这些基础知识,我们可以开始封装接口测试结果的比较功能。下面是一个简单的封装示例,使用 `is_contains` 方法来判断实际结果是否包含在预期结果中: ```python __author__ = 'Leo' class CompareResult(object): def __init__(self): self.flag = None def is_contains(self, expected_result, actual_result): """ 判断实际结果是否包含在预期结果中 :param expected_result: 预期结果 :param actual_result: 实际结果 :return: flag: 标记,True表示包含,False表示不包含 """ if expected_result in actual_result: self.flag = True else: self.flag = False return self.flag if __name__ == '__main__': cr = CompareResult() print(cr.is_contains('123', '123456')) # 输出:True ``` 在这个例子中,我们创建了一个名为 `CompareResult` 的类,它有一个 `is_contains` 方法用于比较预期结果和实际结果。如果实际结果包含预期结果,`flag` 被设置为 `True`,否则为 `False`。 当然,这只是一个基础的封装,实际的接口测试可能需要更复杂的比较逻辑,比如比较嵌套结构、处理JSON响应等。可以扩展这个类,添加更多方法来适应各种比较需求,例如: - `is_json_equal`: 对比两个JSON对象是否完全相同。 - `is_list_equal`: 比较两个列表的元素是否完全一致,顺序可忽略。 - `is_dict_equal`: 比较两个字典的键值对是否完全匹配。 接口测试结果的封装可以帮助我们更好地组织和重用代码,提高测试效率,并且可以减少错误的可能性。在进行接口自动化测试时,这样的封装是十分必要的,它能够帮助我们构建出健壮且可维护的测试框架。 除了本文介绍的基础知识和封装方法,还有许多其他Python库和框架,如`unittest`、`requests`、`pytest`等,可以用于构建更高级的接口测试解决方案。结合这些工具,我们可以构建出完整的自动化测试环境,以实现更高效、更全面的接口测试。
- 粉丝: 12
- 资源: 916
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 全开源免费AI网址导航网站源码 AigoTools
- image restoration and enhancement HDR2
- 技术资料分享STM32 UCOS移植很好的技术资料.zip
- 【java毕业设计】医院远程诊断系统源码(ssm+jsp+mysql+说明文档+LW).zip
- my-vue-app.zip
- 技术资料分享STM8 32选型手册很好的技术资料.zip
- 技术资料分享SP3485很好的技术资料.zip
- 技术资料分享SP3232很好的技术资料.zip
- 社会科学研究方法课堂数据-Research-Method-of-Social-Science.zip
- 中银消费产品宣讲(1).pptx
评论0