zoukankan      html  css  js  c++  java
  • 接口自动化HttpRunner安装使用 ( mac)

    环境mac 10.12

    简介:

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

    HttpRunner是一个基于Python开发的测试框架,可以运行在Mac、Linux、Windows系统平台上

    HttpRunner安装  安装的是HttpRunner2.7

    1.创建工程目录:   

    在python工作目录下创建一个项目模板

    cmd 进入到Python工作目录-->输入以下命令:

    hrun --startproject 项目名称 # 2.X版本
    httprunner startproject 项目名称 # 3.X版本

    我Python的测试工作目录是: documents/automatedTesting/pythonHttpRunner/testHttpRunner

    ---------------------------------------

      如果报错:

    maydeMacBook-Pro:testHttprunner may$ hrun --startproject mayhrun
    2020-07-18 16:04:26.717 | ERROR    | httprunner.cli:main_run:44 - No valid testcase path in cli arguments: ['--startproject', 'mayhrun']
    Sentry is attempting to send 0 pending error messages
    Waiting up to 2 seconds
    Press Ctrl-C to quit

    是因为框架升级导致的,只需要删除符号“--”即可,且使用

    httprunner
    httprunner startproject mayhttprunner

    ---------------------------------------------

    然后会生成一个myhrun的文件夹,且myhrun的文件夹下看到生成的4个目录和一个py文件

    (生成的模式是采用:测试用例分层机制。对于接口数比较多,或者测试场景比较复杂的项目,为了使测试用例更便于组织和维护,推荐使用测试用例分层机制,即单独维护 API 描述、测试用例和测试场景)

    2.目录介绍

          testcases:存放用例

          testsuites:存放套件

          reports:自动生成报告并放到该目录

    • 测试用例集(testsuite):对应一个文件夹,包含单个或多个测试用例(YAML/JSON)文件
    • 测试用例(testcase):对应一个 YAML/JSON 文件,包含单个或多个测试步骤
    • 测试步骤(teststep):对应 YAML/JSON 文件中的一个test,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、校验结果等

    对于单个 YAML/JSON 文件来说,数据存储结构为 list of dict 的形式,其中可能包含一个全局配置项(config)和若干个测试步骤(test)

    • config:作为整个测试用例的全局配置项
    • test:对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤

     demo_testcase.yml

    config:
        name: testcase description
        variables: {}
    teststeps:
    -   name: /login
        request:
            headers:
                Sec-Fetch-Dest: document
                Sec-Fetch-Mode: navigate
                Sec-Fetch-Site: none
                Sec-Fetch-User: ?1
                User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36
                    (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
            method: GET
            url: https://mp.zhinengshouyin.com/login
        validate:
        -   eq:
            - status_code
            - 200
        -   eq:
            - headers.Content-Type
            - text/html; charset=UTF-8

    demo_testsuite.yml

    config:
        name: "demo testsuite"
        variables:
            device_sn: "XYZ"
        base_url: "http://127.0.0.1:5000"
    
    testcases:
    -
        name: call demo_testcase with data 1
        testcase: path/to/demo_testcase.yml
        variables:
            device_sn: $device_sn
    -
        name: call demo_testcase with data 2
        testcase: path/to/demo_testcase.yml
        variables:
            device_sn: $device_sn

    3.在Pycharm中打开新建的myhrun项目

      3-1.各文件说明

    说明:
    (1)api 文件夹:存储接口定义描述
    (2)testcases 文件夹:存储测试用例,文件夹也可以使用其它名称
    (3)testsuites 文件夹:测试测试场景,文件夹也可以使用其它名称
    (4)reports 文件夹:存储 HTML 测试报告
    (5).env文件:存储项目环境变量,通常用于存储项目敏感信息
    (6)debugtalk.py:存储项目中逻辑运算辅助函数(该文件所在目录将作为项目工程的根目录,api 文件夹都必须与其放置在相同目录)
    ·该文件存在时,将作为项目根目录定位标记,其所在目录即被视为项目工程根目录
    ·该文件不存在时,运行测试的所在路径(CWD)将被视为项目工程根目录
    ·测试例文件中的相对路径(例如.csv)均需基于项目工程根目录
    ·运行测试后,测试报告文件夹(reports)会生成在项目工程根目录

      若要新建一个.yml或.json文件

          在testcases文件夹下新建一个.yml或.json文件(一般默认有个demo的yml例子),并按照格式写入接口的相关信息

     若要自己建个.yml或.json文件,testcases文件夹右击-->NEW-->File,命名的名字以.yml或.json文件结尾,然后enter.

     

    创建完成结果如下:

    3-2. 使用har2case 将接口导出的har文件转换成json或者yam文件

      charles导出接口数据   (由链接可知命名的名称为 mplogin.har)

    在myhrun项目下新建datas文件,并且将mplogin.har复制到datas目录下

    终端进入项目myhrun

     终端输入以下指令:

    har2case datas/mplogin.har            #  默认转换成json格式的文件
    
    har2case datas/mplogin.har  -2y     #加上参数 -2y转换为yam格式

      har2case 后面的是har的文件路径

    如图 生成yam文件:

     3-3.生成测试报告

      1)将生成的yam文件拷贝到testcases目录下

    如图 

     2) 运行并导出测试报告

    执行:hrun testcases/mplogin.yml --log-level debug 或者 hrun testcases/mplogin.yml

    hrun testcases/mplogin.yml --log-level debug

    如图:

    若报错:

    ERROR: test_0000_000 (httprunner.api.TestSequense)
    Traceback (most recent call last):
    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)

    可查看 httprunner报错汇总(一)https 请求证书验证

    然后在reports文件夹下会自动生成一个html文件

       

     3)优化测试报告,生成漂亮的测试报告

    查看httprunner自带的模版,发现2.7版本只有一个模版,也就是默认的模版。

    找到报告模版的路径(不同环境的路径有点差别):/usr/local/lib/python3.7/site-packages/httprunner/report/html/template.html

     

    四.使用locust进行页面的性能测试:

       1)、安装locust第三方库:pip3 install locustio

        locust安装

       2)、使用 locusts -f 启动脚本文件

       执行命令:  locusts -f testcases/mplogin0315.yml

    这一步一直报错 (有资料显示Loust不支持python3.7的。一直搁置)

    from locust.events import request_failure

    ModuleNotFoundError: No module named 'locust.events'

     

    在pycharm查看该模块

       3)、在浏览器中进行访问:http://localhost:8089/

  • 相关阅读:
    [Java][Android][Process] 分享 Process 运行命令行封装类型
    UVA 11992
    2014扬声器的信息中国建筑师大会
    POJ 1745 Divisibility (线性dp)
    ListView 实现多选/无线电
    UVa 11587
    zoj 2156
    [TroubleShooting] The server network address can not be reached or does not exist
    oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。
    实现文件上传,以及表单提交成功的回调函数
  • 原文地址:https://www.cnblogs.com/may18/p/12490617.html
Copyright © 2011-2022 走看看