美文网首页
HttpRunner_简单入门

HttpRunner_简单入门

作者: 猪儿打滚 | 来源:发表于2019-12-18 16:11 被阅读0次

    httprunner介绍

    HttpRunner是一款面向HTTP(S)协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

    官方文档(内容比较乱)

    文档目的

    按照本文档,能够快速构建出可以执行大部分接口测试用例的httprunner脚本

    必知概念

    文档:测试用例结构和hook机制

    准备步骤

    • 准备环境
      安装配置python环境,包括pip(HttpRunner的稳定版本托管在 PyPI 上,可使用pip安装)
    • 安装和校验
      1.安装:pip install httprunner
      2.校验:hrun -V,如果正常显示版本号,则说明成功
    • 快速构建httprunner的工程名录(脚手架):hrun --startproject 目录名字
      1.结果示例:
      image.png
      2.目录文件说明:
      api:放置teststep
      testcases:放置testcase
      testsuites:放置testsuite
      reportes:放置测试报告
      .env:存储项目环境变量
      debugtalk.py :hook函数(此处可理解为辅助函数)写在这里
      .gitignore:上传git时需要忽略的文件

    fiddler抓包数据生成yaml文件

    从头开始写yaml很麻烦,HttpRunner提供了命令工具,能够把fiddler导出的har文件,转换成yaml文件,可以在这个基础上进行自己想要的修改,就可以当成testcase来使用

    • 1.导出har文件:
    image.png

    Charles Proxy也支持导出har格式的文件,看官网:https://cn.httprunner.org/prepare/record/

    • 2.把har文件生成yaml文件
      har2case xxxxx.har -2y

    PS.如果是最简单的执行一个testcase,有这个就可以执行了,但是本文档会说使用到testcase/tsetsuite/参数化parameters(更详细的csv文件/hook函数待续)

    文档示例中使用的接口信息

    请求方式 :POST
    路径 :http://xxx/audience/add
    请求参数(部分):

    {
      "profile": [                  // 个人资料新增    
      {
          "op": "add",              // 操作类型 
          "wechatNickname": "小明",     // 微信昵称
          "gender": 1, // 性别,0未知 1男 2女
       }  ]
       }
    

    编写测试文件步骤

    • 做法
      1.把gender的值,在testsuite设置成参数化数据,在testcase中提取
      2.把url中的域名提取出来,在testsuite设置成base_url,这样就不需要多次设置
    • 准备testcase
      1.复制上面生成的yaml文件到testcases目录下
      2.根据需求进行修改:字段解释
      image.png
    • 准备testsuite
      原因:httprunnerV2.0之后,参数化数据驱动的值改为放置在testsuite
      1.在testsuite目录下,创建一个yaml文件,可取名为xxx_testsuite.yml
      2.本例子的testsuite内容如下:
      image.png
    • 执行testsuite
      1.切换命令行模式,进入所创建的的工程目录的根路径(比如说工程目录是audience,那么就来到audience下。因为执行运行命令时,会把测试报告保存到当前路径的reporte目录,如果没有则创建该目录,这样是为了让测试报告保存在已有的reporte目录中)
      2.执行testsuite
      hrun testsuites/xxx_testsuite.yml
      3.结果
      image.png
      4.测试报告
      image.png
      image.png

    testcase提取出teststep

    上面的例子中,所使用的文件层面上,最小单位是testcase,我们也可以把testcase中的每个测试步骤,提取出来,放到teststep

    • api目录下,创建一个yaml文件,比如xxx_teststep.yml
    • 然后到testcase中想要提取的test节点的内容,复制到xxx_teststep.yml中,如:
    image.png
    • 在``testcase中指定包含的teststep
    image.png
    • testsuite无需修改
    • 执行testsuitehrun testsuites/xxx_testsuite.yml
    • 结果


      image.png
      image.png

    参考文档

    如果想要更具体深入去了解(比如说更多的参数化数据、读取csv文件、调用hook函数、压测等),可看:
    1.测试用例结构和hook机制
    2.参数化数据驱动
    3.环境变量
    4.性能测试
    5.开发拓展

    建议:多使用,当不会的时候,去看官方文档(虽说很乱),再不行就百度谷歌。得多用才能更熟练

    相关文章

      网友评论

          本文标题:HttpRunner_简单入门

          本文链接:https://www.haomeiwen.com/subject/bneunctx.html