一种Jmeter工具的脚本运行实现方法技术

技术编号:29399750 阅读:17 留言:0更新日期:2021-07-23 22:36
本技术运用于软件测试领域,提供了一种Jmeter工具的脚本运行实现方法,解决jmeter工具脚本单独运行调试需多步骤繁琐操作的问题。主要方案包括步骤1:增加菜单项,得到鼠标右键“单个运行”的菜单项;步骤2:给“单个运行”菜单项增加监听动作,监听动作包括步骤3~步骤6;步骤3:获取jmeter工具GUI界面JTree组件被选中的节点路径数组A;步骤4:根据节点路径数组A,获取被选中的节点路径的各级父节点路径和各级子级节点路径,得到需保留的节点路径集合B;步骤5:遍历哈希树HashTree,根据集合B移除非选中的节点,获得最终要测试的哈希树HashTree;步骤6:调用启动引擎StandardJMeterEngine,配置哈希树HashTree,执行测试。

【技术实现步骤摘要】
一种Jmeter工具的脚本运行实现方法
本技术运用于软件测试领域,实现jmeter工具脚本单个节点运行的简单操作,解决jmeter工具脚本单独运行调试需多步骤繁琐操作的问题。
技术介绍
Jmeter是免费开源接口和压测工具,广泛运用于接口测试和性能测试领域,其运行方式是点击“启动”按钮后运行,并获得执行结果。在编写调试脚本过程中,为节省调试时间和方便查看结果树内容,一般是对单个http请求调试,确保该http请求无问题后,再调试下一个http请求。以图1为例,jmeter自带功能需操作如下:如果想单独调试节点“01-01”,则必须先选中“01-02”、“01-03”、“01-04”、“01-04”、“01-05”、“02”、“03”、“04”、“05”节点,鼠标右键,弹出菜单栏后点击“禁用”,然后点击“启动”按钮,才能实现节点“01-01”的单独运行调试。如果想继续调试节点“01-02”,则必须选中节点“01-01”,右键点击“禁用”,再选中节点“01-02”,右键点击“启用”,再点击“启动”按钮,才能实现节点“01-02”的单独调试。针对上述情况,在整个项目自动化测试脚本编写调试过程中,需要频繁的“禁用”和“启用”,操作极其麻烦。本方案基于jmeter工具源码,开发了单个节点运行按钮,只需选中待调试的节点,右键点击“单个运行”,即可完成待调试的节点的单独调试,解决了jmeter工具自带功能的繁琐操作,提高了脚本调试效率。以图1为例,如果想单独调试节点“01-01”,则选中“01-01”,右键点击“单个运行”即可;如果想单独调试节点“01-02”则选中“01-02”,右键点击“单个运行”即可。
技术实现思路
本方案主要解决问题是基于jmeter工具源码,开发了单个节点运行按钮,只需选中待调试的节点,右键点击“单个运行”,即可完成待调试的节点的单独调试,解决了jmeter工具自带功能繁琐的操作,提高了脚本调试效率。一种Jmeter工具的脚本运行实现方法,包括以下步骤:步骤1:增加菜单项,得到鼠标右键“单个运行”的菜单项;步骤2:给“单个运行”菜单项增加监听动作(监听动作包括步骤3~6);步骤3:获取jmeter工具GUI界面JTree组件被选中的节点路径数组A;步骤4:根据节点路径数组A,获取被选中的节点路径的各级父节点路径和各级子级节点路径,得到需保留的节点路径集合B;步骤5:遍历哈希树HashTree,根据集合B移除无用节点(非选中的节点),获得最终要测试的HashTree;步骤6:调用启动引擎StandardJMeterEngine,配置HashTree,执行测试。本专利技术采用上述技术方案,具备以下有益效果:一、本专利技术能够很好的解决单个脚本调试过程中,jmeter工具自带功能,需要频繁“禁用”和“启用”的繁杂操作的问题;二、基于jmeter工具源码开发了单个节点运行按钮,只需选中待调试的节点,右键点击“单个运行”,即可完成待调试的节点的单独调试,提高了脚本调试效率。三、本专利技术同样适用于多节点调试,鼠标选中多个节点,右键点击“单个运行”,可完成多节点的单独调试。附图说明图1为Jmeter工具软件GUI界面示截图;图2为添加“单个运行”的GUI界面;图3为Jmeter工具的脚本运行实现方法流程图;图4为被选中的节点路径数组A示例;图5集合B示例;图6最终集合B示例;图7最终要测试的HashTreeB示例。具体实施方式本方案主要采用树操作完成对数据的筛选,下面对这些技术进行简单介绍。Jmeter工具GUI界面MainFrame左边的树,通过JTree组件以树形式显示数据,展示了各节点之间的层级关系(如图1),节点TreeNode包括ThreadGroup、TestPlan、ResultCollector、DebugSampler、ConfigTestElement、HeaderManager、CookieManager、ResponseAssertion等测试元件。JTree类通过getSelectionPaths()方法获得所有被选中节点的路径,该方法返回一个TreePath类型的数组。Jmeter的测试脚本是jmx文件,保存了不同元件和变量的数据内容,在GUI模式下可加载整个测试组件。HashTree是在内部存储文件信息的数据结构,是jmx文件在内存的一份映射。HashTree是JMeter执行测试依赖的数据结构。本方案基于Jmeter源码进行改造,故代码结构遵循jmeter源码结构。下面基于Java开发语言,结合流程图3且以图2为案例对具体实施方式进一步阐述:步骤1:增加JMenuItem菜单项,得到鼠标右键“单个运行”的菜单项(如图2),包含以下子步骤:步骤1.1:在源码配置文件messages_zh_CN.properties中增加新配置项:run_by_one=单个运行;步骤1.2:在源码动作名称文件ActionNames.java中增加新动作名称:publicstaticfinalStringRUN_BY_ONE="run_by_one";步骤1.3:在源码菜单管理文件MenuFactory.java中增加新菜单项:JMenuItemrunbyone=makeMenuItemRes("run_by_one",ActionNames.RUN_BY_ONE);menu.add(runbyone),得到“单个运行”的菜单项。步骤2:给“单个运行”菜单项增加监听动作;即在源码启动监听文件Start.java的doAction(ActionEvente)方法中增加elseif(e.getActionCommand().equals(ActionNames.RUN_BY_ONE))的条件判断,在此条件中增加一系列监听动作,监听动作的实现在步骤3~6具体阐述。步骤3:获取jmeter工具GUI界面JTree组件被选中的节点路径数组A,具体操作如下:步骤3.1:调用源码原有方法GuiPackage.getInstance()获取GUI实例:GuiPackagegui=GuiPackage.getInstance();步骤3.2:调用源码原有方法getTestPlan()获取测试脚本哈希树:HashTreetestTree=gui.getTreeModel().getTestPlan();步骤3.3:调用JTree类的getSelectionPaths()方法获得所有被选中节点的路径TreePath[]paths=testTree.getSelectionPaths(),本例子选中图1节点“01-01”,则被选中的节点路径数组A,如图4。步骤4:根据被选中的节点路径数组A,获取被选中的节点路径的各级父节点路径和各级子级节点路径,得到需保留本文档来自技高网
...

【技术保护点】
1.一种Jmeter工具的脚本运行实现方法,包括以下步骤:/n步骤1:增加菜单项,得到鼠标右键“单个运行”的菜单项;/n步骤2:给“单个运行”菜单项增加监听动作,即点击该菜单栏后,会触发工具运行选中的节点进行调试,监听动作的实现包括步骤3~步骤6;/n步骤3:获取jmeter工具GUI界面JTree组件被选中的节点路径数组A;/n步骤4:根据节点路径数组A,获取被选中的节点路径的各级父节点路径和各级子级节点路径,得到需保留的节点路径集合B;/n步骤5:遍历哈希树HashTree,根据集合B移除非选中的节点,获得最终要测试的哈希树HashTree;/n步骤6:调用启动引擎StandardJMeterEngine,配置哈希树HashTree,执行测试。/n

【技术特征摘要】
1.一种Jmeter工具的脚本运行实现方法,包括以下步骤:
步骤1:增加菜单项,得到鼠标右键“单个运行”的菜单项;
步骤2:给“单个运行”菜单项增加监听动作,即点击该菜单栏后,会触发工具运行选中的节点进行调试,监听动作的实现包括步骤3~步骤6;
步骤3:获取jmeter工具GUI界面JTree组件被选中的节点路径数组A;
步骤4:根据节点路径数组A,获取被选中的节点路径的各级父节点路径和各级子级节点路径,得到需保留的节点路径集合B;
步骤5:遍历哈希树HashTree,根据集合B移除非选中的节点,获得最终要测试的哈希树HashTree;
步骤6:调用启动引擎StandardJMeterEngine,配置哈希树HashTree,执行测试。


2.根据权利要求1所述的一种Jmeter工具的脚本运行实现方法,其特征在于,步骤1包括以下步骤:
步骤1.1:在源码配置文件中增加单个运行的新配置项;
步骤1.2:在源码动作名称文件中增加单个运行的新动作名称;
步骤1.3:在源码菜单管理文件中增加“单个运行”的菜单项。


3.根据权利要求1所述的一种Jmeter工具的脚本运行实现方法,其特征在于,步骤3包括以下步骤:
步骤3.1:调用源码原有方法GuiPackage.getInstance()获取GUI实例:GuiPackagegui=GuiPackage.getInstance();
步骤3.2:调用源码原有方法getTestPlan()获取测试脚本哈希树:HashTreetestTree=gui.getTreeModel().getTestPlan();
步骤3.3:调用J...

【专利技术属性】
技术研发人员:魏燕芬李耀田骏
申请(专利权)人:武汉众邦银行股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1