性能测试工具 解决 nGrinder 僵死任务的方案

胡刚 · 2016年06月16日 · 最后由 K米测试 回复于 2016年06月19日 · 1976 次阅读

1.背景

nGrinder 作为一款开源的性能测试工具极大地满足了日常性能测试工作,但在某些极端情况下会出现任务僵死的状态,无法正常终止或删除僵死任务,这些极端情况包括:性能测试脚本有问题,未进行脚本校验就直接被绑定到压测场景中;压测过程中网络因素等;nGrinder 代码本身不能处理这些异常,直接导致任务僵死,任务所有者再继续执行新任务时将被阻塞。

2.问题描述

复现问题:

  1. 性能脚本有问题,性能脚本并未验证通过,直接在测试场景中绑定该脚本, 执行任务无法终止。 这里写图片描述
  2. 执行性能测试过程中,可能由于网络因素原因,导致状态没获取到,不好复现。 这里写图片描述

3.解决方案

解决方案有 2 个:
1.使用 Firebug 直接修改前端;2.删除 H2 中的僵死任务。

3-1.第 1 个解决方案:

僵死任务, test_script 无法终止
这里写图片描述

将标签 delete 显示
这里写图片描述

僵死任务被删除
这里写图片描述

3-2.第 2 个解决方案:

直接操作 H2 DB(不建议)
可以直接在库中删除任务,H2 的 db 文件路径如下:
这里写图片描述
有兴趣的同学可以试试,这里不介绍,最好不要直接操作数据库。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

这个跟 gatling 比较如何啊, 好像报表好很多

#1 楼 @seveniruby 1. nGrinder 是个 web 服务,是动态的;而 gatling 是运行脚本,生成个静态的 html 报告;2.gatling 结果里没有 TPS 数据; 如果要做一个公共的性能测试平台最好选择个 web 服务,脚本和结果大家可以共享,也方便管理; nGrinder 功能差不多等价于阿里云的 PTS,nGrinder 还是开源的,也方便按照需求二次开发。

之前也试用过 gatling,脚本调试不是很方便,发现 ngrinder,基本满足了我们的需求,我们准备二次开发。

#2 楼 @aizaimenghuangu 好像还没有出现过任务僵死的情况。

5楼 已删除
2楼 已删除
CC 专栏文章:ngrinder-解决假死问题--方案 1 中提及了此贴 08月06日 10:36
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册