python壓測工具locust基礎

     因近期公司需要對ocr類產品(python語言編寫的接口)進行壓測,而之前的壓測工具就meter、loadrunner對python語言的代碼都不太兼容,故而找到了locust工具。

     使用之前在網上對locust工具進行了些瞭解,發現它還是比較簡單的,入門很快,輕便,而且還有較多人使用,相信測試結果還是比較準確的,誤差不會太大。於是,開始着手準備了。

      因locust在linux環境下運行較穩定,故我選擇安裝 在linux環境中。

      第一步:安裝locust   pip3  install locust    安裝後locust --version查看當前Locust版本

      第二步,編寫腳本

    

# -*- coding: UTF-8 -*-
import requests
from locust import HttpLocust,TaskSet,task
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import base64

# 禁用安全請求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

image_path = '/home/ocrpython/test/2.JPG'
image_backpath = '/home/ocrpython/test/4.jpg'

def img_to_b64(img_path):
    with open(img_path, 'rb') as f:
        base64_data = base64.b64encode(f.read())
    return base64_data.decode('utf-8')


class set_task (TaskSet):
    @task(1)
    def post_api (self):
        # 定義請求頭
        data_dis = {"img": img_to_b64(image_path), "orderNo": "test101901080933541948707600000004"}
        req = self.client.post("/id_ocr_batch", data=data_dis)
        http_code = req.status_code
        if http_code != 200:
            print("response null !!!")
        else:
            print(req.text)

    @task(1)
    def post_backapi(self):
        # 定義請求頭
        data_dis1 = {"img": img_to_b64(image_backpath), "orderNo": "back102002200933541948707600000004"}
        req = self.client.post("/id_ocr_batch", data=data_dis1)
        http_code = req.status_code
        if http_code != 200:
            print("response null !!!")
        else:
            print(req.text)

class apiUser(HttpLocust):
    task_set = set_task
    min_wait = 5
    max_wait = 50
    host = 'http://XX.XX.XX.XX:5002'


if __name__ == '__main__':
    import os
    os.system("locust -f /home/ocrpython/locust_idocr.py")

    set_taskL類繼承TaskSet類,用於描述用戶行爲:

1、使用@task裝飾的方法爲一個事務,方法的參數用於指定該行爲的執行權重,如上圖,正反面的比例爲1:1.

2、apiUser類用於設定性能測試屬性

3、此腳本只能在裝有locust的環境下運行,不能在pycharm內調試,故只能運行後看代碼是否報錯咯,若無報錯,則性能測試腳本就ok了,則進行下一步

第三步:啓動  

進入代碼目錄,輸入 locust -f  bokeyuan.py  --host=‘’http://XX.XX.XX:5002‘’

第四步:打開locust的web頁面

使用上面的命令行啓動Locust之後,應該打開瀏覽器並將其指向http://XX.XX.XX.XX:8089(XX.XX.XX.XX爲裝有locust的機器地址)

  • Number of users to simulate :設置模擬用戶數;
  • Hatch rate(users spawned/second) :每秒產生(啓動)的虛擬用戶數;

  設置好模擬用戶後,點擊Start swarming開始測試

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章