zoukankan      html  css  js  c++  java
  • httprunner接口自动化框架简单使用教程一

    一、用来做什么

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

    官方中文文档地址:https://cn.httprunner.org/

    二、开始使用

       1、安装

    pip install httprunner 安装
    pip install pipenv  安装管理依赖包
    2、项目文件结构
    测试用例分层结构
    cmd到创建文件下目录,执行
    hrun --startproject demo 创建一个基本的测试用例分层结构

    api文件:存放接口相关信息

    testcase:用例存放

    testsuites:用例集

    reports:测试报告存放地方

    debugtalk.py 基础数据定义,这边里可以定义数据,或者写方法来获取,在整个文件中都可以调用里面定义的数据

    .env 也是定义数据的一个文件

    gitignore  git软件要忽略的文件列表

    测试用不分层结构,根据项目需要创建文件所有文件都在同一个目录,或者按自己的爱好创建,不推荐这种方式。
    3、实践使用
    假设有一个登录接口和查询接口,要预先登录后获取到token,然后才能进行查询,找到类似这两个接口的接口文档,或者抓包对应事件看看是否看接口相关信息

    api格式:
    name: demo api
    base_url:base_url

    variables:
        var1: value1
    var2: value2
    request:
    url: /api/path/$var1
    method: POST
    headers:
    Content-Type: "application/json"
    json:
    key: $var2
    validate:
    - eq: ["status_code", 200]
    name 和 request 部分是必须的,request 中的描述形式与 requests.request 完全相同。存在变量引用的情况,可在 variables 中对参数进行定义,
    默认情况下,har2case 生成用例时,若 HTTP 请求的响应内容为 JSON 格式,则会将第一层级中的所有key-value转换为 validator。

    testcase测试用例:
    - config:
        name: testcase description

       request: base_url: ${gain_base_url()}

        variables: {}
    
    - test:
        name: /api/get-token
        request:
            headers:
                Content-Type: application/json
                User-Agent: python-requests/2.18.4
                app_version: 2.8.6
                device_sn: FwgRiO7CNA50DSU
                os_platform: ios
            json:
                sign: 9c0c7e51c91ae963c833a4ccbab8d683c4a90c98
            method: POST
            url: http://127.0.0.1:5000/api/get-token
        validate:
            - eq: [status_code, 200]
            - eq: [headers.Content-Type, application/json]
            - eq: [content.success, true]
            - eq: [content.token, baNLX1zhFYP11Seb]
    

     

    config是接口配置部分,test是用例部分,validate是断言部分

    加密:

    hook 函数的定义放置在项目的 debugtalk.py 中,在 YAML/JSON 中调用 hook 函数仍然是采用 ${func($a, $b)} 的形式。

    3、运行

    cd 到对应目录下,hrun 对应case文件就行了

    # 调试运行 hrun
    $ pipenv run python main-debug.py hrun -h
    
    # 调试运行 locusts
    $ pipenv run python main-debug.py locusts -h

    httprunner、hrun、ate 三个命令完全等价

  • 相关阅读:
    关于codeblocks插件(持续更新)
    自定义gvim配色方案qiucz.vim的源码
    mark it
    poj 1032
    poj 1028
    最小公倍数是lcm
    problems
    hdu 1067
    某些题的做法。。。
    突然明白了什么
  • 原文地址:https://www.cnblogs.com/YouxiYouxi/p/12482033.html
Copyright © 2011-2022 走看看