一:代码如下
# coding=utf-8 """ 作者:建帅小伙儿 功能: 新增功能: 日期:2022/2/23 17:25 """ from locust import HttpUser, between, task, TaskSet import os from common.agCli import * import logging class TaskTest(TaskSet, CLI): # 执行并发前置动作,比如清理当前所有session def on_start(self): """ description:登录ag, 清理log :return: """ self.ssh_ag() self.clear_log() logging.info('清理log结束,压测开始!!!') # 压测任务,也可以是@task(10)啥的,这个数字是代表权重,数值越大,执行的频率就越高 def login(self): url = '/prx/000/http/localh/login' data = { "method": "http1", "uname": "gaojs", "pwd1": "", "pwd2": "", "pwd": "admin", "submitbutton": "Sign" } header = {"Content-Type": "application/json;charset=UTF-8"} self.client.request(method='POST', url=url, data=data, headers=header, name='登录虚拟站点', verify=False, allow_redirects=False) # 执行并发测试后执行的动作,比如保存log等操作,查看报告http://localhost:8089/ def on_stop(self): self.ssh_ag() self.cli_cmd('switch vsite') self.cli_cmd('session kill all') logging.info('清理session结束,压测结束,请查看report, http://localhost:8089!!!') class Login(HttpUser): host = 'https://192.168.120.206' # 每次请求停顿时间 wait_time = between(1, 3) tasks = [TaskTest] if __name__ == "__main__": os.system("locust -f locust_test.py --host=https://192.168.120.206")
二:报告如下
1. Type:请求类型;
2.Name:请求路径;
3.requests:当前请求的数量;
4.fails:当前请求失败的数量;
5.Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
6.Average:所有请求的平均响应时间,毫秒;
7.Min:请求的最小的服务器响应时间,毫秒;
8.Max:请求的最大服务器响应时间,毫秒;
9.Content Size:单个请求的大小,单位字节;
10.reqs/sec:每秒钟请求的个数。
charts页签下面的参数(Total Requsts per Second)
1.(Total Requsts per Secon):吞吐量/每秒响应事务数(rps)实时统计
2.(Response Times):平均响应时间/平均事务数实时统计
3.(Number of Users):虚拟用户数运行