lib文件夹下的配置文件和具体压测接口脚本
- 接口比例配置:config.py
- 接口脚本
# -*- coding: utf-8 -*-
#cookies = []
#userids = []
#infile = open("./resources/test_auth_1W.txt", 'rb')
#for line in infile.readlines():
# userids.append(line.strip().split(",")[0])
# cookies.append(line.strip().split(",")[1])
#infile.close()
# 混合接口:比例配置
dicts = {
"api_01":10,"api_02":90
}
主脚本mix.py
# -*- coding: utf-8 -*-
from net.grinder.script.Grinder import grinder
from java.util import Random
from config import dicts
#创建压测任务时选择的执行脚本,无需进行变更
scripts = []
total_percent = 0
excute_dicts = {}
for i in dicts:
scripts.append(i)
percent = dicts[i]
excute_dicts[i] = [total_percent, total_percent + percent]
total_percent += percent
for script in excute_dicts: exec("import %s" % script)
def createTestRunner(script):
exec("x = %s.TestRunner()" % script)
return x
class TestRunner:
def __call__(self):
random_num = Random().nextInt(total_percent)
#print(total_percent)
#print(random_num)
for i in excute_dicts:
if excute_dicts[i][0] <= random_num and random_num < excute_dicts[i][1]:
#print(i)
self.testRunner = createTestRunner(i)
self.testRunner()
如何设置不同接口的实例名称?
#实例名称不一样在压测平台才能看到多接口压测曲线:
- 接口1脚本内设置:test1 = Test(1, "casename1")
- 接口1脚本内设置:test2 = Test(2, "casename2")
如何在ngrinder上看到不同接口的请求折线图?
- 各个接口脚本对应的test实例名称不同
- 压测配置的高级配置中Connection reset on each test run=3
折线图效果如下: