Httprunner框架学习(一)环境搭建和用例生成

前言

HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试。
官方文档:https://docs.httprunner.org/

具有以下优点:

  • 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
  • 采用 YAML/JSON 的形式描述测试场景,保障测试用例描述的统一性和可维护性
  • 借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
  • 支持完善的测试用例分层机制,充分实现测试用例的复用
  • 测试前后支持完善的 hook 机制
  • 响应结果支持丰富的校验机制
  • 基于 HAR 实现接口录制和用例生成功能(har2case)
  • 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
  • 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
  • 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
  • 极强的可扩展性,轻松实现二次开发和 Web 平台化

环境准备

httprunner目前有3个版本,1.x、2x和3x版本

HttpRunner是使用Python开发的,它支持Python 3.6+和大多数操作系统。Python的组合,3.6/3.7/3.8并macOS/Linux/Windows在GitHub-Actions上进行测试

安装

HttpRunner在上可用PyPI,可以通过安装pip。

pip3 install httprunner

如果要跟上最新版本,可以使用github存储库URL安装。

pip3 install git+https://github.com/httprunner/httprunner.git@master

如果?如果您HttpRunner之前已经安装过并且想要升级到最新版本,则可以使用该-U选项。

pip3 install -U httprunner
pip3 install -U git+https://github.com/httprunner/httprunner.git@master

检查安装

安装HttpRunner后,系统将添加5个命令。

  • httprunner:主命令,用于所有功能
  • hrun:的别名httprunner run,用于运行YAML / JSON / pytest测试用例
  • hmake:的别名httprunner make,用于将YAML / JSON测试用例转换为pytest文件
  • har2case:的别名httprunner har2case,用于将HAR转换为YAML / JSON测试用例
  • locusts:用于对locust进行负载测试

安装完成查看HttpRunner版本:

httprunner -V # hrun -V

3.1.4

使用案例

我们使用禅道的登录接口为例如

登录接口相关文档信息如下:

1、使用Chrales抓包工具 ,抓到禅道的登录接口,保存为test_loginzentao.har文件

2、接下来使用har2case转换成httprunner的YAML格式脚本用例,保存为test_login.yml
转换后生成的yaml文件

config:
    name: testcase description
    variables: {}
    verify: false
teststeps:
-   name: /zentao/user-login.html
    request:
        cookies:
            JSESSIONID.378a684c: node0jexby5wcf7tf1xxf1ezsh8stl1.node0
            JSESSIONID.4c5dfe6a: node056yih37791f0nudquqarcox51.node0
            ajax_quickJump: 'on'
            bugModule: '0'
            device: desktop
            lang: zh-cn
            lastProduct: '1'
            lastProject: '1'
            preBranch: '0'
            preProductID: '1'
            qaBugOrder: id_desc
            screenResolution: 1920x1080
            theme: default
            windowHeight: '872'
            windowWidth: '1634'
            zentaosid: ljunb0hduvqim7e5qa48e5mfh7
        data:
            account: admin
            password: feb822e39749290d6909f9eca2ad4a37
            referer: http://58.87.64.140:8088/zentao/my/
        headers:
            Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
            Accept-Encoding: gzip, deflate
            Accept-Language: zh-CN,zh;q=0.9
            Cache-Control: max-age=0
            Connection: keep-alive
            Content-Length: '113'
            Content-Type: application/x-www-form-urlencoded
            Cookie: lang=zh-cn; device=desktop; theme=default; lastProduct=1; lastProject=1;
                bugModule=0; preBranch=0; preProductID=1; qaBugOrder=id_desc; ajax_quickJump=on;
                windowWidth=1634; windowHeight=872; zentaosid=ljunb0hduvqim7e5qa48e5mfh7;
                screenResolution=1920x1080; JSESSIONID.4c5dfe6a=node056yih37791f0nudquqarcox51.node0;
                JSESSIONID.378a684c=node0jexby5wcf7tf1xxf1ezsh8stl1.node0
            Host: 58.87.64.140:8088
            Origin: http://58.87.64.140:8088
            Referer: http://58.87.64.140:8088/zentao/user-login.html
            Upgrade-Insecure-Requests: '1'
            User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36
                (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36
        method: POST
        url: http://58.87.64.140:8088/zentao/user-login.html
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - headers.Content-Type
        - text/html; Language=UTF-8;charset=UTF-8

将.har文件转换成yaml、json文件的 命令:

har2case xxx.tar -2y 转换为yaml
har2case xxx.tar -2j 转换为json

3、执行脚本

运行用例很简单,直接在cmd里面,cd到test_login.yml目录,运行

hrun test_loginzentao.yml

执行结果如下:

4、查看运行结果&报告

  • httprunner默认安装类了pytest-html插件
  • hrun test_loginzentao.yml --html=reports/zentao.login.html

测试报告如下:

posted @ 2020-09-12 12:42  那些你很冒险的梦。  阅读(307)  评论(1)    收藏  举报