我是Locust负载测试框架的新手,正在将现有的基于Azure云的性能测试C#脚本迁移到Locust的基于Python的脚本。我们的团队几乎完成了脚本的迁移。但是,在我们的负载测试过程中,我们遇到了以下错误,由于CPU利用率高或Locust异常多,导致无法从计算机创建新请求。我们正在使用Locust基于Web的模式运行-详细信息如下所示。这些脚本适用于50至100个用户的较小负载]
“ 错误1-('连接已中止。',RemoteDisconnected('远端封闭的无响应连接',))”]“>
“ 错误2:连接池已满,正在丢弃连接
”“ ** **错误3:urllib3.exceptions.NewConnectionError::无法建立新连接:[Errno 110]连接超时****”]
是,我们在实用程序类上使用UrlLibs。但是前两个错误的确似乎是蝗虫。
我们的负载测试配置为:“ 3500个用户,以每秒5个用户的孵化率
”。在Azure的8核,16 Gb Linux Ubuntu虚拟机上本机运行(无docker容器)。在Linux机器上,ulimit设置为50,000。请帮助我们提出您的想法
样品测试如下
import os
import sys
sys.path.append(os.environ.get('WORKDIR', os.getcwd()))
from locust import HttpLocust, TaskSet, task
from locust.wait_time import between
class ContactUsBehavior(TaskSet):
wait_time = AppUtil.get_wait_time_function(2)
@task(1)
def post_load_test_contact(self):
data = { "ContactName" : "Mane"
, "Email" : "[email protected]"
, "EmailVerifaction" : "[email protected]"
, "TelephoneContact" : ""
, "PhoneNumber" : ""
, "ContactReason" : "Other"
, "OtherComment" : "TEST Comments 2019-12-30"
, "Agree" : "true"
}
self.client.post("app/contactform", self.client, 'Contact us submission', post_data = data)
class UnauthenticatedUser(HttpLocust):
task_set = ContactUsBehavior
# host is override-able
host = 'https://app.devurl.com/'
我是Locust负载测试框架的新手,正在将现有的基于Azure云的性能测试C#脚本迁移到Locust的基于Python的脚本。我们的团队几乎完成了...
蝗虫的默认HTTP客户端使用python-requests,内部使用urllib3。如果您正在进行大规模测试,则应考虑使用另一个HTTP客户端。 urllib 3(PoolManager)的连接池将重用连接,并在任何给定时间限制每个主机允许多少个连接,以避免累积太多未使用的套接字。因此,您可以调整池:https://urllib3.readthedocs.io/en/latest/advanced-usage.html#customizing-pool-behavior