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开始测试

 

 

 

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