Python的性能测试工具-Locust

啥都不说,先发地址:https://www.locust.io/

Locust是一个开源负载测试工具,理论上可以使用Python代码定义用户行为,并使用数百万个并发用户来支持您的系统。作者使用pip install locustio 方式进行的安装,其他方式可以查看一下官方文档,这个不难。

第一步:简单的例子

fromlocustimportHttpLocust,TaskSet

deflogin(l):

l.client.post("/login",{"username":"lvxin","password":"123456"})

deflogout(l):

l.client.post("/logout")

defindex(l):

l.client.get("/")

defgoods_list(l):

l.client.get("/goods_list")

classUserBehavior(TaskSet):

tasks =

defon_start(self):

login(self)

defon_stop(self):

logout(self)

classWebsiteUser(HttpLocust):

task_set = UserBehavior

min_wait =5000

max_wait =9000

启动脚本:

代码中使用的是--host地址的路由,-f是我们的脚本文件

python启动后,默认会监听8089端口,如果有异常情况,请先看看端口是否被占用了

启动后的界面:

第一个参数是要模拟的用户数,第二位是每秒的增长数量,在实际使用时,建议增长数量小一些,这样能更方便我们观察程序的动态。

过一会

模拟人数从23增长到了609人,locust原理也是模拟http请求,所有在使用时候,需要有一个相对靠谱的网络环境,这样能减少外来因素影响结果。

工具还提供了一些其他功能,例如图表

错误信息统计

还有下载报告等,实践一下就能了解。

第二步:增加一下自定义内容

Locust也是通过python的requests库实现的http请求,所有在使用 l.client.get()或l.client.post()时候的参数,可以查看requests的使用文档,例如我们想给请求增加一个header

defindex(l):

l.client.trust_env =False

headers['User-Agent'] = random.choice(user_agent_list)

l.client.get("/",headers=headers)

增加一个代理proxy

defindex(l):

l.client.trust_env =False

headers['User-Agent'] = random.choice(user_agent_list)

proxies = {'http': random.choice(pro)}

l.client.get("/",headers=headers,proxies=proxies)

这样我们再看服务端接收日志的时候,就能完善模拟的效果

注意:虽然我们这样就有些类似攻击行为,但是这种事情因人而异,我们日常开发中,确实需要这样操作的需求,希望读者不要误会

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181129G0L4AT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券