主頁 >  其他 > HttpRunner介面自動化測驗框架

HttpRunner介面自動化測驗框架

2021-02-24 06:27:39 其他

原文地址:https://sutune.me/2018/08/05/httprunner/

HttpRunner

簡介

HttpRunner 是一款面向 HTTP(S) 協議的通用測驗框架,只需撰寫維護一份 YAML/JSON 腳本,即可實作自動化測驗、性能測驗、線上監控、持續集成等多種測驗需求,

  • 專案地址:https://github.com/HttpRunner/HttpRunner
  • 中文手冊:http://cn.httprunner.org

框架流程

 

 

 

 

核心特性

  • 繼承 Requests 的全部特性,輕松實作 HTTP(S) 的各種測驗需求
  • 測驗用例與代碼分離,采用YAML/JSON的形式描述測驗場景,保障測驗用例具備可維護性
  • 測驗用例支持分層機制,充分實作測驗用例的復用
  • 測驗用例支持引數化和資料驅動機制
  • 使用 skip 機制實作對測驗用例的分組執行控制
  • 測驗請求支持完善的 hook 機制
  • 支持熱加載機制,在文本測驗用例中輕松實作復雜的動態計算邏輯
  • 基于 HAR 實作介面錄制和用例生成功能(har2case)
  • 結合 Locust 框架,無需額外的作業即可實作分布式性能測驗
  • 執行方式采用 CLI 呼叫,可與 Jenkins 等持續集成工具完美結合
  • 測驗結果統計報告簡潔清晰,附帶詳盡統計資訊和日志記錄
  • 具有可擴展性,便于擴展實作 Web 平臺化(HttpRunnerManager)

下載安裝

使用pip命令進行安裝

pip install httprunner

安裝后校驗是否安裝成功,可以使用如下命令進行校驗

hrun -V
1.4.2

har2case -V
0.1.8

若版本號正常顯示,則說明安裝正常,

入門使用

測驗場景

  • 測驗介面:http://httpbin.org/get
  • 介面型別:GET

用例設計

HttpRunner 的測驗用例支持兩種檔案格式:YAML 和 JSON,這里以YAML為例,

test_httpbin.yml

- config:
    name: httpbin api test
    request:
        base_url: http://www.httpbin.org
- test:
    name: get request
    request:
        url: /get
        method: GET
    validate:
        - eq: [status_code,200]
  • config:作為整個測驗用例集的全域配置項
  • test:對應單個測驗用例
  • name 這個test的名字
  • request 這個test具體發送http請求的各種資訊, 如下:
  • url 請求的路徑 (若config中有定義base_url, 則完整路徑是 base_url + url )
  • method 請求方法 POST, GET等等
  • validate 完成請求后, 所要進行的驗證內容. 所有驗證內容均通過該test才算通過,否則失敗.

 

運行測驗

使用hrun執行測驗,如下所示:

C:\Users\Shuqing>hrun D:\api_test\HttpRunner_test\test_httpbin.yml
get request
INFO     GET /get
INFO     status_code: 200, response_time(ms): 1967.35 ms, response_length: 273 bytes
INFO     start to validate.
.

----------------------------------------------------------------------
Ran 1 test in 1.976s

OK
INFO     Start to render Html report ...
INFO     Generated Html report: C:\Users\Shuqing\reports\1533092144.html

查看測驗報告

打開html報告如下:

 

 

 

 

HttpRunnerManager

簡介

HttpRunnerManager是基于HttpRunner的介面自動化測驗平臺,該工具是對 HttpRunner的包裝和Web圖形化, 另外還增加了一些新概念(專案/模塊)用來組織用例,
如果對yaml語法格式不熟悉,以及對于httprunner命令不熟悉的可以使用該平臺執行介面自動化測驗,

專案地址:https://github.com/HttpRunner/HttpRunnerManager

核心特性

  • 專案管理:新增專案、串列展示及相關操作,支持用例批量上傳(標準化的HttpRunner json和yaml用例腳本)
  • 模塊管理:為專案新增模塊,用例和配置都歸屬于module,module和project支持同步和異步方式
  • 用例管理:分為添加config與test子功能,config定義全部變數和request等相關資訊 request可以為公共引數和請求頭,也可定義全部變數
  • 場景管理:可以動態加載可參考的用例,跨專案、跨模塊,依賴用例串列支持拖拽排序和洗掉
  • 運行方式:可單個test,單個module,單個project,也可選擇多個批量運行,支持自定義測驗計劃,運行時可以靈活選擇配置和環境,
  • 分布執行:單個用例和批量執行結果會直接在前端展示,模塊和專案執行可選擇為同步或者異步方式,
  • 環境管理:可添加運行環境,運行用例時可以一鍵切換環境
  • 報告查看:所有異步執行的用例均可在線查看報告,可自主命名,為空默認時間戳保存,
  • 定時任務:可設定定時任務,遵循crontab運算式,可在線開啟、關閉,完畢后支持郵件通知
  • 持續集成:jenkins對接,開發中,,,

下載安裝

  1. 安裝mysql資料庫服務端(推薦5.7+),并設定為utf-8編碼,創建相應HttpRunnerManager資料庫,設定好相應用戶名、密碼,啟動mysql,

  2. 將HttpRunnerManager下載下來,解壓放在任意盤符位置,例如我放在D盤根目錄,并重命名為HttpRunnerManager

環境配置

HttpRunnerManager支持分布式執行,模塊和專案執行可選擇為同步或者異步方式,因此需要安裝相關依賴工具,

erlang

Erlang是一種通用的面向并發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模并發活動的編程語言和運行環境,

下載地址:http://www.erlang.org/downloads

Rabbitmq

RabbitMQ 是一個由 Erlang 語言開發的 AMQP(高級訊息佇列協議)的開源實作,它支持多個訊息傳遞協議,RabbitMQ可以部署在分布式和聯合配置中,以滿足高規模、高可用性的需求,另外安裝rabbitmq需要先安裝erlang

下載地址:http://www.rabbitmq.com/download.html 下載后雙擊rabbitmq-server-3.7.7.exe檔案進行安裝,

安裝完成后如下圖如所示,選中RabbitMQ Service -start 然后以管理員身份運行,

 

 

 

可以通過訪問 http://localhost:15672 進行測驗,默認的登陸賬號為:guest,密碼為:guest,

 

 

 

相關資料:RabbitMQ Windows環境安裝官方手冊

資料庫配置

打開HttpRunnerManager專案的setting.py檔案,進行如下配置

if DEBUG:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunnerManager',  # 新建資料庫名
            'USER': 'root',  # 資料庫登錄名
            'PASSWORD': '',  # 資料庫登錄密碼
            'HOST': '127.0.0.1',  # 資料庫所在服務器ip地址
            'PORT': '3306',  # 監聽埠 默認3306即可
        }
    }
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),  # 靜態檔案額外目錄
    )
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunnerManager',  # 新建資料庫名
            'USER': 'root',  # 資料庫登錄名
            'PASSWORD': '',  # 資料庫登錄密碼
            'HOST': '127.0.0.1',  # 資料庫所在服務器ip地址
            'PORT': '3306',  # 監聽埠 默認3306即可
        }
    }
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

work配置

修改work配置

djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'amqp://guest:[email protected]:5672//' if DEBUG else 'amqp://guest:[email protected]:5672//'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

CELERY_TASK_RESULT_EXPIRES = 7200  # celery任務執行結果的超時時間,
CELERYD_CONCURRENCY = 1 if DEBUG else 10 # celery worker的并發數 也是命令列-c指定的數目 根據服務器配置實際更改 一般25即可
CELERYD_MAX_TASKS_PER_CHILD = 100  # 每個worker執行了多少任務就會死掉,我建議數量可以大一些,比如200


EMAIL_SEND_USERNAME = '[email protected]'  # 定時任務報告發送郵箱,支持163,qq,sina,企業qq郵箱等,注意需要開通smtp服務
EMAIL_SEND_PASSWORD = 'XXX'     # 郵箱密碼

 

樣式檔案更新

由于該專案已經停止更新維護,導致部分樣式css檔案地址失效,
修改HttpRunnerManager\templates 下的base.html檔案
23行,需要修改一下

#將這行代碼進行更新
 <link rel="stylesheet" href=https://www.cnblogs.com/software-test-Python/p/"http://cdn.amazeui.org/amazeui/2.7.2/css/amazeui.min.css"/> 

#更新后的代碼
 <link rel="stylesheet" href=https://www.cnblogs.com/software-test-Python/p/"http://cdn.bootcss.com/amazeui/2.7.2/css/amazeui.min.css"/>

安裝依賴庫檔案

打開cmd命令視窗,切換到HttpRunnerManager目錄,然后執行下面命令,自動安裝需要的依賴庫檔案,

pip install -r requirements.txt

資料庫遷移

python manage.py makemigrations ApiManager #生成資料遷移腳本
python manage.py migrate  #應用到db生成資料表

創建超級用戶,用戶后臺管理資料庫,并按提示輸入相應用戶名,密碼,郵箱,

python manage.py createsuperuser

啟動服務

輸入下面命令啟動服務

python manage.py runserver

服務啟動成功之后,打開如下地址,可以進入到不同的頁面,

  • 注冊: http://127.0.0.1:8000/api/register/

 

 

  • 登錄: http://127.0.0.1:8000/api/login/

 

 

  • 后臺資料庫管理:http://127.0.0.1:8000/admin/

 

 注冊登錄之后就可以看到平臺的界面,接下來就可以創建介面測驗的專案和用例了,

 

 

HttpRunnerManager 入門使用

創建專案

在首頁點擊左側選單欄新增專案,然后輸入專案相關資訊,我們接下來將會以httpbin里面的介面來進行測驗,所以專案名稱命名為:httpbin介面測驗

 

 

創建模塊

一個專案會一般分為多個功能模塊,我們可以創建不同模塊,然后基于不同模塊創建測驗用例,
在左側選單選擇模塊管理 然后點擊新增模塊,接下來輸入模塊資訊, 這里我們創建一個模塊:HTTP_Methods

 

 

創建環境

在介面測驗程序中,我們有時需要設定base_url來提高用例撰寫執行效率,我們可以在系統設定中的運行環境來創建,例如我們創建一個base_url操作程序如下圖所示:

 

 

 

創建用例

這里以下面介面為例創建用例:

http://www.httpbin.org/get #請求方式為GET

 

點擊頂部快捷入口新增用例 然后在用例編輯視窗切換到request來編輯用例,操作步驟如下:

 

 

如上圖演示所示,用例名稱為test_get_request 用例要歸屬到專案和具體的模塊

運行測驗

如下圖所示,點擊用例測驗的運行圖示,然后選擇運行環境即可執行用例,執行完成之后會自動生成測驗報告,可以查看運行的結果,

 

 

以上我們就完成了單個介面的簡單測驗,接下來我們要進一步完善用例,

HttpRunnerManager 用例配置

header設定

如果想自定義header資訊,則可以在用例編輯界面點擊add headers,然后配置header資訊,操作如下圖所示:

 

 

請求引數

URL引數

在GET請求中,經常會有在URL中的引數,也就是Query String Parameters 比如在用例 test_get_request 增加一個引數 user=51zxw 操作程序如下:

 

 

body引數

在Post請求中,請求引數一般放在請求體Request body中,HttpRunner支持form-datajson兩種資料格式來傳遞引數,

這里我們的測驗介面如下:請求型別為POST

http://httpbin.org/post
form-data

首先創建用例名稱為test_post_formdata 用例編輯界面Type選擇data,然后點擊add data按鈕,在下面表單中輸入引數名稱和值即可,操作程序如下:

 

 

json

傳遞Json引數與form-data方法類似,選擇Type時選Json 創建用例test_post_jsondata操作流程如下:

 

 

獲取回傳結果

HttpRunnerManager提供了extract功能來從回傳結果中提取我們需要的內容,例如前面用例test_get_request執行之后回傳結果如下:

{
  "args": {
    "user": "51zxw"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.4", 
    "User-Headers": "zxw2018"
  }, 
  "origin": "110.52.4.234", 
  "url": "http://httpbin.org/get?user=51zxw"
}

如果我們想提取user值放在一個變數里面,那么可以使用extract來提取,在用例編輯界面點擊extract/validate標簽,然后點擊add extract按鈕,進行如下配置即可:

extract

其中Key的值response_user就是將回傳值存盤的變數名,content.args.user表示從回傳內容中提取args屬性中的user值,下一步在斷言設定中,我們可以驗證是否獲取正確,

斷言設定

結合前面提取回傳值的內容,我們設定斷言驗證回傳的user值是否和我們預期的一樣,首先點擊add validate 然后可以進行如下設定:

validate

上面的$response_user表示參考我們之前設定的獲取回傳值的變數,Comparator表示匹配規則,匹配規則有很多可以點擊下拉選單查看 Expected值表示我們的期望值,

執行用例之后,我們可以看到在測驗報告中,斷言驗證是通過的,

validate-report.

當然如果還想添加其他斷言規則,就繼續點擊add validate 例如設定驗證回應狀態碼為200可以進行如下設定

validate-statuscode.PNG

注意:200數值型別為int

用例組合

有時候我們想把一些單個的介面按照指定順序組合成為一個業務邏輯模塊,比如用戶模塊,把用戶注冊、用戶登錄,用戶退出幾個用例封裝成一個業務邏輯模塊,從而形成接分層測驗,

實踐案例:

將之前的三個用例test_get_request,test_post_formdatatest_post_jsondata封裝為一個用例test_method_group 然后執行test_method_group,具體操作如下:

testcase-addgroup.gif

從圖中我們可以看出新建一個用例test_method_group,然后可以自由添加單個介面用例,并且可以自由調整用例執行順序,以及刪減用例,

注意:新建組裝的用例時, 只能選擇單請求的用例進行拼接, 不可選擇已組裝過的用例,例如再新建一個用例,把test_method_group放進去是不行的,
只能選擇包含”不包含別的用例的用例”,

測驗計劃

測驗套件

測驗套件(test suite)和我們上面講的組合用例類似,我們可以把單個用例按照業務邏輯進行組合運行,和組合用例不同的是:測驗套件可以包含組合用例,但是組合用例不能包含組合用例,
測驗套件是對測驗用例的更高一層的封裝,

實踐案例

創建測驗用例集suite_test_methods 包含測驗用例test_get_request和組合用例test_method_group 然后執行查看結果,
操作程序如下:

set-testsuite

從上圖中我們可以看到創建的測驗套件成功執行,加載的測驗套件也可以任意調整執行順序,相關的資料配置會自動從用例的配置中讀取,無需再單獨配置引數,

上面我們選擇的是同步執行方式,我們可以選擇異步執行方式,可以在后臺執行,然后生成測驗報告,

run-asyn.PNG

在異步執行之前我們需要先啟動支持異步的相關服務:

1.啟動RabbitMQ Server

2.進入到HttpRunnerManager目錄,啟動worker

1
python manage.py celery -A HttpRunnerManager worker --loglevel=info

 

3.啟動任務監控后臺

1
celery flower

 

celery簡介

Celery是一個異步任務佇列/基于分布式訊息傳遞的作業佇列,它側重于實時操作,但對調度支持也很好,Celery用于生產系統每天處理數以百萬計的任務,Celery是用Python撰寫的,但該協議可以在任何語言實作,它也可以與其他語言通過webhooks實作,

執行完成之后我們可以在【報告管理】——【查看報告】中看到生成的測驗報告,

run-asyn-report.PNG

擴展資料:Python 并行分布式框架 Celery

定時任務

測驗套件還支持定時任務,這樣方便進行回歸測驗,
定時任務需要啟動定時任務監聽器,具體如下:

1
python manage.py celery beat --loglevel=info

平臺界面設定步驟為:點擊選單欄左側【測驗計劃】-【定時任務】 進入到【系統設定】界面,可以進行如下設定:

setting-run-time

上面定時配置 */10 * * * * 表示每10分鐘執行一次,使用的是crontab運算式

執行結果如下圖所示,可以看到是每隔10分鐘執行一次,

report-crontab.PNG

crontab格式

通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本,時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合,

分 時 日 月 星期

  • 第1列分鐘0~59
  • 第2列小時0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期天)
crontab設定案例

每隔1分鐘執行一次

1
* * * * *

 

每30分鐘運行一次:

1
*/30 * * * *

每隔1小時執行一次

1
* */1 * * *

每周一到周五早上八點運行

1
* 8 * * 1-5

相關資料:crontab運算式

注意

如果遇到如下報錯:

1
2
3
D:\HttpRunnerManager>python manage.py celery beat --loglevel=info
celery beat v3.1.26.post2 (Cipater) is starting.
OSError: [WinError 87] 引數錯誤,

進入到HttpRunnerManager目錄,然后洗掉celerybeat.pid檔案,重啟命令即可,

配置管理

前面我們用例的各個引數都是配置在各自用例之中的,如果引數有變化則需要打開對應請求用例來修改,當用例數量較多時,這樣操作會比較低效,那么該如何有效解決這個問題呢?

使用HttpRunnerManager的配置管理工具就可以比較好的解決這個問題,我們可以將一些公共的變數,引數、方法、請求頭資訊都存盤在一個配置模塊中,這樣維護和使用就非常便利,

支持的配置型別包括以下幾類:

  • Variables 變數型別
  • Parameters 引數型別
  • Hooks 方法型別
  • Request 請求型別

點擊選單欄左側的配置管理 然后點擊新增配置 或者直接頂部新增配置快捷入口,就可以創建配置,
這里演示VariablesParameters配置

variable配置

如下圖所示:創建公共變數com_user 值設為zxw2018 操作程序如下:

config-variable

變數創建完成之后,接下來要參考這個公共變數,在用例test_get_requesttest_post_formdata分別添加公共變數com_user,配置如下:

add-config-var

最后開始參考配置,在用例test_method_group中參考該配置,然后運行即可,操作程序如下:

run-configvar

從上圖可以看出,我們設定的配置變數已經在用例生效,下次想修改變數值,只需要修改配置就可以了,

注意

當用例1關聯了配置(config)1, 用例2關聯了配置(config)2 時,
現在新建一個用例3, 將用例1和用例2都組合進用例3中, 并且用例3關聯配置(config)3,
此時執行用例3, 配置(config)1 和 配置(config)2 會被使用么?

答案是不會, 執行用例3時, 只有配置(config)3 會被使用. 在執行的程序中, 用例1和用例2所要參考的變數, 都只會去配置(config)3中找,

Parameters配置

對用例中的某些請求引數, 有時想要測驗多種輸入情況, 可以為每種情況都撰寫獨立的用例或配置. 但是這樣會比較麻煩, 另一種方式是將原來的variables變數定義改為Parameters引數串列來定義. 這個串列中定義需要傳入的引數. 然后使用這些引數分別執行一次,也就是引數化,

案例1——單個引數設定

針對用例test_get_request 設定引數para_user 分別取值為[‘zxw2016’,'zxw2017','zxw2018']針對這三個不同的引數來進行介面測驗,

config-para

配置好之后,接下來點擊用例test_get_request 然后添加引數配置,操作如下所示:

run-config-para

從上圖我們可以看出,用例遍歷執行了我們設定的三個引數,

案例2——多個引數

對于同時存在多個引數串列, 則需要對其排列組合的每一種情況都執行一次,也就是笛卡爾乘積

例如有xxyy兩組引數,對應的變數分別如下

1
2
xx : [xxvalue1, xxvalue2]
yy : [yyvalue1, yyvalue2, yyvalue3]

 

那么最侄訓按以下六種情況各執行一次用例:

1
2
3
4
5
6
xx=xxvalue1, yy=yyvalue1
xx=xxvalue1, yy=yyvalue2
xx=xxvalue1, yy=yyvalue3
xx=xxvalue2, yy=yyvalue1
xx=xxvalue2, yy=yyvalue2
xx=xxvalue2, yy=yyvalue3

所以, 當對多個變數使用parameters引數串列時, 特別需要事先考慮清楚用例將會被回圈的次數. 避免不必要的測驗時間的消耗.

例如在配置表中我們再增加一個引數para_pwd 取值為['666', '888']

config-multi-para.PNG

然后在用例中參考變數para_pwd

testcase-muti-para.PNG

最后執行的結果為6次,

multi-para-report.PNG

引陣列合為:

1
2
3
4
5
6
zxw2016,666
zxw2016,888
zxw2017,666
zxw2017,888
zxw2018,666
zxw2018,888
配置引數的作用域

當組合用例中的單個用例參考了配置引數,那么該組合用例下所有的用例都會按照引陣列合來執行對應的次數,

例如在test_method_group中用例test_get_request參考了配置引數,那么所有的用例都會執行6次(上面案例中para_userpara_pwd的笛卡爾積),總共為3*6=18次,

config-testsuite.PNG

這樣帶來一個問題也就是有些沒有設定引數的用例也會重復運行,這對整體運行效率會有比較大的影響,

如果只想針對指定的用例遍歷設定的引數,那么需要將引數配置在用例中,而不是在公共配置模塊中,

例如在用例test_get_request配置引數para_user 取值為['zxw2016', 'zxw2017', 'zxw2018'] 同時洗掉之前配置模塊的對應的引數,以及參考的引數,

test-case-param.PNG

然后執行用例集test_method_group,那么test_get_request會根據設定的三個不同引數運行3次,其他兩個介面運行1次,

鍵值對引數

對于引數間有對應關系的(如用戶名:密碼)可以按如下方式定義, 這樣就避免了無效的排列組合:

1
xx-yy: [[xxvalue1,yyvaule1],  [xxvalue2,yyvalue2]]

組合結果:

1
2
xx=xxvalue1, yy=yyvalue1
xx=xxvalue2, yy=yyvalue2

在使用多個賬戶/密碼進行測驗時, 常用這種方式.

例如在用例test_post_formdata中配置如下引數

1
2
3
#用戶名密碼組合
51zxw2016,666
51zxw2018,888

在用例中進行如下配置

set-para-keyvalue.PNG

import-keybalue-para.PNG

運行測驗用例:

keyvalue-report

從運行的報告中我們可以看到,引數按照我們設定的運行,

HttpRunnerManager進階應用

自定義輔助函式

在一些比較特殊的介面測驗程序中,有時需要做一些比較復雜的邏輯處理,比如加解密,針對這些介面我們需要撰寫一些輔助函式來完成測驗,

案例:介面引數md5加密

測驗登錄介面:http://httpbin.org/post,引數除了userpasswd還需要一個sign引數
sign生成規則為用戶名+密碼然后進行md5加密,

在專案管理選單欄中點擊debugtalk.py 然后編輯如下代碼:

1
2
3
4
5
6
7
8
9
10
# debugtalk.py

import hashlib

def getSign(user,passwd):
str=user+passwd
md5=hashlib.md5()
md5.update(str.encode(encoding='utf-8'))
sign=md5.hexdigest()
return sign

上面代碼代表根據用戶名密碼生成md5摘要資訊,并回傳結果,

創建用例test_getSign 配置如下:

test_getSign_request.PNG

test_getSign_variables.PNG

從上面的配置可以看出,方法參考格式為:${function($para)}

運行結果如下:

test_getSign_report.PNG

從上面的報告可以看出,sign的值引數為md5演算法生成的結果,

Hook

有些介面測驗前后需要進行一些特殊的處理,比如初始化操作或者執行完成之后等待操作,
相當于unittest中的setUptearDown方法,HttpRunner也支持類似于這樣的方法,其中Hook功能就支持這樣的操作,

  • setup_hooks: 在 HTTP 請求發送前執行 hook 函式,主要用于準備作業;也可以實作對請求的 request 內容進行預處理,
  • teardown_hooks: 在 HTTP 請求發送后執行 hook 函式,主要用于測驗后的清理作業;也可以實現對回應的 response 進行修改,例如進行加解密等處理,

實踐案例

設定介面請求之后如果回應狀態碼為200就等待0.1s 否則就按照設定的時間等待,

在 debugtalk.py 創建輔助函式sleep() 定義如下:

1
2
3
4
5
6
7
import time

def sleep(response,t):
if response.status_code==200:
time.sleep(0.1)
else:
time.sleep(t)

 

然后在用例test_get_request中進行設定${time($response,2)}即可,

任務監控

任務監控可以查看節點的狀況(包括處理的佇列資訊等)和task的執行情況

Tips:這里需要做一個小小的修改,因為作者把地址配置按照他自己的運行環境寫死了,修改方式為:打開檔案D:\HttpRunnerManager\templates\base.html

192.168.91.45修改為:127.0.0.1

1
2
<!-- <li><a href="http://192.168.91.45:5555/dashboard">任 務 監 控</a></li>-->
<li><a href="http://127.0.0.1:5555/dashboard">任 務 監 控</a></li>

 

設定好之后打開即可看到如下頁面:

Flower-index.PNG

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262822.html

標籤:其他

上一篇:畢業3年...設計行業一事無成,北漂闖蕩轉行成功

下一篇:一分鐘了解自動化測驗

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more