专栏文章 实战 Hrp:手把手教你增加接口协议 -- 流程解析

扬帆自动化测试平台 · 2023年08月11日 · 3019 次阅读

源码

官网

demo 账号:admin,密码:123456
在上期内容中,我们已经对hrp的基本目录结构进行了讲解,使我们对整体项目有了初步了解。了解目录结构后,我们可以更轻松地阅读代码,并针对特定模块进行修改。然而,想要进行更深入的二次开发,就需要了解整体业务流程,以及代码在何时执行哪些操作,例如何时开始运行、读取用例、进行接口请求等。在遇到缺乏文档的情况下,阅读源代码是解决问题的最佳途径,比如查找如何引用其他用例或者排查 hooks 修改数据无效的问题。一旦我们充分了解了源码,遇到问题时直接查看源代码将更加高效节省时间。

了解hrp用例运行的大致步骤有助于我们更好地掌握整体流程。大致步骤如下:

  1. 设置HTTPRunner对象:在此步骤中,我们初始化HTTPRunner对象,为后续的用例运行做准备。
  2. 读取测试用例:hrp支持读取yamljson格式的用例文件,将用例内容转换成TestCase对象,方便hrp进行运行。
    • 遍历用例列表:运行时可以指定运行一个或多个用例。
    • 校验文件格式:确保用例文件格式正确。
    • 读取文件内容:通过ToTestCase将文件内容转换成可执行的测试用例对象。
  3. 运行测试用例:在这个阶段,hrp开始执行测试用例。
    • HRPRunner 初始化:HRPRunner 是 HTTPRunner 的核心对象,它是测试执行的入口,承载了许多全局配置和控制的功能。HRPRunner 的初始化包括配置 HTTP 客户端、设置超时、是否启用统计和日志等。这些设置将影响整个测试执行的行为。
    • 遍历测试用例:hrp分两次遍历,首先遍历测试用例对象,然后在第二次遍历中执行各个api(接口)。
    • 创建运行用例对象CaseRunner:每个测试用例都有一个对应的 CaseRunner,用于管理测试用例的执行。CaseRunner 初始化的过程包括加载插件、解析配置、设置超时等。插件可以为测试用例提供额外的功能和验证方式。
    • 运行api:对于每个apihrp会进行以下操作:
      • 解析所有字段:将函数、变量等解析成正常的数据内容。
      • 运行SetupHooks:对请求内容进行修改,常用于加密操作。
      • 设置测试报告收集内容。
      • 使用http.Do发起 http 请求。
      • 解析接口返回内容,更新单个接口的测试报告。
      • 运行TeardownHooks:对返回内容进行修改,常用于解密操作。
      • 提取参数:提取的参数可作为后续接口的变量,也可以导出到其他测试用例中进行使用
      • 断言:当测试用例执行完毕后,HTTPRunner 会进行断言判断,以验证实际响应与预期结果是否一致。HRP 内置了多种断言函数,用于比较响应状态码、响应内容、响应时间等。如果断言失败,HTTPRunner 将标记该步骤为失败,并记录错误信息。
  4. 输出测试报告:生成测试报告是测试过程中的重要一环,它能够清晰地展示测试结果和问题情况。HTTPRunner 支持生成文本格式和 HTML 格式的测试报告。测试报告中包含了执行结果摘要、失败步骤、请求响应信息等,为开发人员和测试人员提供了问题定位和修复的依据。。

了解这些运行步骤,我们可以通过调试的方式,对特定位置设置断点,逐步调试代码,从而深入了解整体的运行过程。尽管通过调试可能会花费更多时间,但它能让我们了解整个流程和数据交互的细节。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册