小马的测试用例那些事 JMeter - 创建可重用和模块化的测试脚本实例

小马 · March 12, 2019 · 935 hits

内部测试人员 在接收到该概念JMeter - 如何创建可重用和模块化的测试脚本后 ,尝试用这个四个概念做模块化组装,遇到了问题.

该人员书写思路是 创建了 A.jmx B.jmx 这两个jmx 分别有自己的一套自定义变量和函数.如下图红框内的即为该modleinclude.jmx 的公共使用的相关.见下图

当写第三个 C.jmx的时候, 使用 以上概念的做模块化组装的时候,导致 A 和 B 都自有的上述 自定义变量和函数, 无法公共为C.jmx 会冲突,见官方解释
官方说包含控制器不支持有自己的变量和函数
https://jmeter.apache.org/usermanual/component_reference.html#Include_Controller

This element does not support variables/functions in the filename field.

实际参考 我们用www.typing.com 登录和打开lessons网页 tests网页试验.
正确的组装使用好这几个概念做模块化组装的步骤是, 在一个Testplan.jmx 下, 去分拆线程组. 去save as Test Fragment ...
如下图所示,Test事务控制器, Open_lessons网页, Open_tests网页 ,Open_Games网页(后续编辑去掉了该http采样器请求)
原始通过blazemeter chrome BlazeMeter-- Jmeter 与 Selenium 录制编辑回放 chrome 插件工具录制插件捕获下来的如下:
我们看到插件将 打开登录页 ,输入用户名, 输入密码登录 , 打开lessons ,打开tests ,打开games 都自动的放到了Transaction Controller 自动命名为Test的事务控制器下.

还将统一访问的域名创建了自定义变量,可以说是非常强大了.

然后我们想重用和模块化login功能, 将登录的三个相关请求
1打开登录页Open_loginPage 2输入用户名Type_login-username 3输入密码登录Type_login-pw
丢到login 事务控制器下, 然后新建 Test Fragment, 再将Login登录事务控制器丢进去. 然后右键选中 Test Fragment , 选择 save as Test Fragment , 取名为typingLogin.jmx 保存到本地目录下.
然后在线程组ThreadGroup 下 新加Include Controller , filename选择typingLogin.jmx
然后在线程组ThreadGroup 下 新加Simple Controller 再将http请求采样器 Open_lessons网页 和 Open_tests网页 拖拽进去.

最终就达到了这一封装和重用login 的目的.

最终查看结果树View Results Tree 效果就会有一次login事务, 然后 分别打开 lessons网页和tests网页. 符合真实用户的操作行为.

最终总结为,创建一个Testplan.jmx , 再在该jmx下, 去组装测试片段Test Fragment和重构新线程组用Include Controller来引用Test Fragment.
这样一个jmx下的 不同线程组 都是公用的一套变量和函数 ,而不要 单独分别创建A.jmx B.jmx , 如果 A和B 分别有自定义变量和函数的话,这样导致创建第三个C.jmx想使用Include Controller 的时候违法了jmeter Include Controller使用原则.

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up