前几天看过花菜大佬分享的一个帖子 Python 操作 Jmeter 探索:pymeter 实操指南
然后去看了 pymeter 这个库,结合目前的引擎,简单的改造下做个 demo
结合主流的 unittest 框架与 pymeter 做了一键压测的功能,页面参考了 apipost 的桌面端简单的做了这个 demo。(引擎的话之前一直用的 unittest,所以结合 type 动态生成测试类,重写步骤函数)
def perform(self, data):
"""一键压测扩展"""
router = data.get('interface').get('url')
threads = data.get('threads', 1)
iterations = data.get('iterations', 1)
http_sampler = HttpSampler(
"Demo",
router,
)
tg = ThreadGroupSimple(
threads, iterations, http_sampler,
)
tp = TestPlan(tg)
stats = tp.run()
response = {
"duration": stats.duration_milliseconds,
"mean": stats.sample_time_mean_milliseconds,
"min": stats.sample_time_min_milliseconds,
"median": stats.sample_time_median_milliseconds,
"90p": stats.sample_time_90_percentile_milliseconds,
"95p": stats.sample_time_95_percentile_milliseconds,
"99p": stats.sample_time_99_percentile_milliseconds,
"max": stats.sample_time_max_milliseconds
}
self.__unittest_perform_response = response
改造后的 runApi 结果返回结果如下
最终效果如下
纯属娱乐勿喷!哈哈哈!代码目前存在问题不用参考谢谢!demo 而已