「原创声明:保留所有权利,禁止转载」
demo 账号:admin,密码:123456
在上期内容中,我们已经对hrp
的基本目录结构进行了讲解,使我们对整体项目有了初步了解。了解目录结构后,我们可以更轻松地阅读代码,并针对特定模块进行修改。然而,想要进行更深入的二次开发,就需要了解整体业务流程,以及代码在何时执行哪些操作,例如何时开始运行、读取用例、进行接口请求等。在遇到缺乏文档的情况下,阅读源代码是解决问题的最佳途径,比如查找如何引用其他用例或者排查 hooks 修改数据无效的问题。一旦我们充分了解了源码,遇到问题时直接查看源代码将更加高效节省时间。
了解hrp
用例运行的大致步骤有助于我们更好地掌握整体流程。大致步骤如下:
- 设置
HTTPRunner
对象:在此步骤中,我们初始化HTTPRunner
对象,为后续的用例运行做准备。 - 读取测试用例:
hrp
支持读取yaml
和json
格式的用例文件,将用例内容转换成TestCase
对象,方便hrp
进行运行。- 遍历用例列表:运行时可以指定运行一个或多个用例。
- 校验文件格式:确保用例文件格式正确。
- 读取文件内容:通过
ToTestCase
将文件内容转换成可执行的测试用例对象。
- 运行测试用例:在这个阶段,
hrp
开始执行测试用例。- HRPRunner 初始化:HRPRunner 是 HTTPRunner 的核心对象,它是测试执行的入口,承载了许多全局配置和控制的功能。HRPRunner 的初始化包括配置 HTTP 客户端、设置超时、是否启用统计和日志等。这些设置将影响整个测试执行的行为。
- 遍历测试用例:
hrp
分两次遍历,首先遍历测试用例对象,然后在第二次遍历中执行各个api
(接口)。 - 创建运行用例对象CaseRunner:每个测试用例都有一个对应的 CaseRunner,用于管理测试用例的执行。CaseRunner 初始化的过程包括加载插件、解析配置、设置超时等。插件可以为测试用例提供额外的功能和验证方式。
- 运行
api
:对于每个api
,hrp
会进行以下操作:- 解析所有字段:将函数、变量等解析成正常的数据内容。
- 运行
SetupHooks
:对请求内容进行修改,常用于加密操作。 - 设置测试报告收集内容。
- 使用
http.Do
发起 http 请求。 - 解析接口返回内容,更新单个接口的测试报告。
- 运行
TeardownHooks
:对返回内容进行修改,常用于解密操作。 - 提取参数:提取的参数可作为后续接口的变量,也可以导出到其他测试用例中进行使用
- 断言:当测试用例执行完毕后,HTTPRunner 会进行断言判断,以验证实际响应与预期结果是否一致。HRP 内置了多种断言函数,用于比较响应状态码、响应内容、响应时间等。如果断言失败,HTTPRunner 将标记该步骤为失败,并记录错误信息。
- 输出测试报告:生成测试报告是测试过程中的重要一环,它能够清晰地展示测试结果和问题情况。HTTPRunner 支持生成文本格式和 HTML 格式的测试报告。测试报告中包含了执行结果摘要、失败步骤、请求响应信息等,为开发人员和测试人员提供了问题定位和修复的依据。。
了解这些运行步骤,我们可以通过调试的方式,对特定位置设置断点,逐步调试代码,从而深入了解整体的运行过程。尽管通过调试可能会花费更多时间,但它能让我们了解整个流程和数据交互的细节。
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。