接口自動化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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM