我目前正在编写用于对API进行负载测试的python脚本。我想检查一次API可以处理多少个请求。该API用于注册,因此我每次都必须发送唯一的参数。
反正我可以通过蝗虫或其他任何方式实现这一目标吗?
任何帮助将不胜感激。
这是我的单用户注册代码。
def registration:
URL = "ip"
PARAMS = {'name':'test','password':'test1','primary_email':'test667@gmail.com','primary_mobile_number':'9999999999','country_abbrev':'US'}
r = requests.post(url = URL,params = PARAMS,auth=HTTPDigestAuth('user', 'pass'))
response = r.text
print response
答案 0 :(得分:3)
看看Faker Python Package。无论您是需要引导数据库,创建美观的XML文档,填充您的持久性以进行压力测试还是匿名化来自生产服务的数据,这都会为您生成伪造数据,Faker适合您。
true
要启动负载测试,请运行
ga('send', 'event', 'Videos', 'play', 'Super video', {
nonInteraction: true
});
有关更多信息,请访问Locust Quickstart
答案 1 :(得分:2)
from locust import HttpLocust, TaskSet
def login(self):
params= {'name':'test','password':'test1','primary_email':'test667@gmail.com','primary_mobile_number':'9999999999','country_abbrev':'US'}
self.client.post(URL, data=params)
#The data parameter or json can both be used here. If it's a dict then data would work but for json replace data with json. For more information you can check out requests package as Locust internally uses requests only.
class UserBehavior(TaskSet):
tasks = {index: 2, profile: 1}
def on_start(self):
login(self)
def on_stop(self):
pass
@task
def try(self):
pass
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
要启动负载测试,请运行locust -f locust_files / my_locust_file.py --host = http://example.com,其中host是您的IP。然后,您可以转到127.0.0.1:8089选择要模拟的虚拟用户数。 在Windows上,只能有1024个用户。但是您可以使用Locust提供的Master Slave Architecture的惊人支持。
PS: on_start 方法中放置的所有内容对于每个用户只能运行一次。因此,由于您要测试API的限制,因此您最好选择在 @task 装饰器下添加该请求。
希望这会有所帮助! :)
答案 2 :(得分:0)
有不同的方法,例如:
很遗憾,您的问题对“唯一”参数没有明确要求,因此暂时建议您熟悉How to Run Locust with Different Users文章
答案 3 :(得分:-1)
使用 locust 来查看 medium link for load test with python - 一种开源负载测试工具。