51Testing软件测试论坛

标题: locust 集合设置完后,运行成功,但是监控发现没有等待后发请求,而是直接发请求了... [打印本页]

作者: 测试积点老人    时间: 2021-5-6 14:34
标题: locust 集合设置完后,运行成功,但是监控发现没有等待后发请求,而是直接发请求了...
locust 集合设置完后,运行成功,但是监控发现没有等待后发请求,而是直接发请求了,请帮忙看看怎么回事?
  1. import locust
  2. #from gevent._semaphore import Semaphore
复制代码
import gevent #集合点:多用户同一时间并发操作(监控平台设置的用户数,如100,20,一共100个用户,每秒增加5个,则会等到100个用户的时候才一起发请求。
#三、集合点
  1. all_locusts_spawned =gevent._semaphore.Semaphore() #集合类实例化
  2. all_locusts_spawned.acquire()#加锁

  3. def on_hatch_complete(**kwargs):
  4.     all_locusts_spawned.release()#释放锁

  5. # 挂在到locust钩子函数(所有的Locust实例产生完成时触发)
  6. #老版本:locust.events.hatch_complete += on_hatch_complete
  7. locust.events.spawning_complete.add_listener(on_hatch_complete())
复制代码
#二、主函数调用的任务类,类名可随意
  1. class UserBehavior2(locust.TaskSet):
  2.     #1. 构造函数,可放变量
  3.     def on_start(self):
  4.         self.index=0
  5.         print("======onstart begin :")
  6.         all_locusts_spawned.wait()  # 集合点:创建钩子方法
  7.         print("======onstart end:")


  8.     @locust.task
  9.     def test_visit(self):
  10.         url = "/getJoke?page=" + str(self.parent.share_data[2]) + "&count=" + str(self.index + 2)
  11.         res=self.client.get(url, name='getJoke分页查询')
  12.         res=res.text
  13. #一.继承locust.HttpUser的类为主函数,相当于main,类名可随意
  14. class WebSiteUser232323(locust.HttpUser): #locust.HttpLocust
  15.     #1.被测网站域名
  16.     host = 'https://api.apiopen.top'

  17.     #3.性能测试任务类:登录还是注册
  18.     tasks=[UserBehavior2] #调用哪个任务

  19.     #4.等待时间设置
  20.     wait_time = locust.between(3,7)
  21.     #locust -f locustS.py --host=https://www.baidu.com  localhost:8089
复制代码






作者: qqq911    时间: 2021-5-7 10:36
加入等待时间
作者: 郭小贱    时间: 2021-5-7 11:09
https://testerhome.com/topics/12126?order_by=created_at&  参考这篇帖子看下呢
作者: Miss_love    时间: 2021-5-31 17:08
参看楼上




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2