你参考一下这个,修改一下 linux 的配置
====linux 负载机配置==== 重启生效,或者不重启输入命令行生效: sysctl -p
=====vi /etc/sysctl.conf=========
添加以下:
fs.file-max = 100000
fs.nr_open = 100000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.optmem_max = 8192
net.ipv4.tcp_max_orphans = 10240
net.ipv4.tcp_max_tw_buckets = 10240
net.ipv4.ip_local_port_range = 1024 65535
===========vi /etc/security/limits.conf=============
添加以下:
你有没有保持心跳?
我用 locust 测 websocket 的。。弄过保持 20W 个长连接。。
用四台 LINUX 服务器,每台连接 5W 的。。
1、框架自己的时间
2、都是在同一个局域网内
3、分析工具我研究一下。
(在 locust 压测的同时,我另外直接用 request 请求这批被测的接口,返回的响应时间都是正常的,但是 locust 查看到的响应时间是会比比较高)
没什么关系,都是内网的,而且加密签名和解密的方法,每个接口都要调用的,没有贴出来
都一样的意思,这也没什么好办法
还有,查看压力机以及测试对象服务器的资源并没有占满的
多动手练习练习
unittest 的执行顺序就是按照 asiii 0-9 A-Z a-z 排序的呃,直接就这样修改函数名还比较方便一些
或者用 TestSuite().addTest,不过这个感觉更麻烦
改用 pytest 有排序的插件
创建订单号用(用户 ID+ 时间戳(毫秒 or 微秒)+ 随机数),或者再转(16 进制,62 进制)生成的订单号就算是并发跑,都很难会重复
pytest_ordering,这个插件对多个文件有效的啊。。
比如我现在的项目,是有 6 个 test.py 的。。装饰器@pytest.mark.run(order=4),这个是写在不同文件的,不同测试类或者测试用例,都起作用的