一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“Locust工具介绍”。
Locust是基于Python的性能测试工具,所以安装Locust前必须配置Python环境,参见本书第1.3.2节。Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。它是在requests类进行接口测试(参见后面的章节)上进行扩展的,特点如下。
不需要编写笨重的UI或者臃肿的XML代码,基于协程而不是回调,脚本编写简单易读;
一、设置
通过以下命令下载Locust。
C:Usersxiang>pip3 install locustio
下载完毕,通过如下命令查看是否装成功。
C:Usersxiang>pip3 show locustio
Name: locustio
Version: 0.11.0
Summary: Website load testing framework
Home-page: https://locust.io/
Author: Jonatan Heyman,Carl Bystrom,Joakim Hamrén,Hugo Heyman
Author-email: UNKNOWN
License: MIT
Location: c:usersxiangappdatalocalprogramspythonpython37libsite-packages
Requires: flask,gevent,requests,pyzmq,six,msgpack
Required-by:
二、书写代码及运行
案例3-5:用Locust配置电子商务 站登录功能。
被测对象为附录A的电子商务 站。
(1)书写Python代码。这个代码与基于Python requests类进行接口测试非常类似,之前的章节有写过,可以查阅一下。
# coding=utf-8
import requests
from locust import HttpLocust,TaskSet,task
from
requests.packages.urllib3.exceptions import InsecureRequestWarning# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)class ebusiness(TaskSet):#新建一个类ebusiness(TaskSet),继承TaskSet,该类下面写需要请求的接口以及相关信息
@task(1) #@task装饰该方法表示为用户行为,括 里面参数表示该行为的执行权重:数值越大,执行频率越高,不设置默认是1;
def
test_correctusername_correctpassword(self):token = “
RNF3Y04qFeJkMwCDsTMn4gfMcyfQ2vUjXbcENLADEFyCSRp1pBdezZKwHhlSwqgE”cookie = {“csrftoken”:token}
payload={“username”:”cindy”,”password”:”123456″,”csrfmiddlewaretoken”:token}
data = self.client.post(“/login_action/”,data=payload,cookies=cookie)#self.client调用get和post方法,和requests一样
if str(data.status_code) == “200”:
print (“Pass”)
else:
print(“fail”)
if “电子商务系统” in str(data.text):
print (“Pass”)
else:
print(“fail”)
class websitUser(HttpLocust):# WebsiteUser()类用于设置生成负载的基本属性
task_set = ebusiness #指向定义了用户行为的类
min_wait = 3000 #模拟负载的任务之间执行时的最小等待时间,单位为毫秒
max_wait = 6000 #模拟负载的任务之间执行时的最大等待时间,单位为毫秒
if __name__ == “__main__”:
import os
os.system(“locust –host=http://127.0.0.1:8000/”)
默认情况下,时间是在min_wait和max_wait之间随机选择,但是可以通过将wait_function设置为任意函数来使用任何用户定义的时间分布。
(2)启动Locust。
C:Usersxiang>locust –host=http://127.0.0.1:8000
C:Usersxiang>locust -f testscript/locusttest.py –host=http://127.0.0.1:8000
C:Usersxiang>locust -f testscript/locusttest.py –master –host=http://127.0.0.1:8000
C:Usersxiang>locust -f testscript/locusttest.py –salve –host=http://127.0.0.1:8000
C:Usersxiang>locust -f testscript/locusttest.py –slave –master-host=192.168.0.100 –host=http://127.0.0.1:8000
2013-05-09 01:01:44,727]
IMYalost/INFO/locust.main: Starting web monitor at *:8089[2013-05-09 01:01:44,729]
IMYalost/INFO/locust.main: Starting Locust 0.8
8089是该服务启动的端口 ,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可。
(3)设置并运行
打开浏览器,输入URL:http://localhost:8089,出现如图6-166界面。
图3-166 Locust运行起始界面
点击【Start swarming】按键,开始执行locust脚本。
测试完毕,点击停止按键,出现如图3-167界面。
图3-167 Locust测试 告界面
其中里面参数的意义为。
上面一栏为菜单,每个菜单的功能分别为。
今天关于“Locust工具介绍”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!