Jmeter包含控制器相对路径 [英] Jmeter include controller relative path

查看:325
本文介绍了Jmeter包含控制器相对路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用Jmeter-maven-plugin并在eclipse中创建了一个maven项目.我的测试文件(MainTest.jmx)位于src/test/jmeter文件夹中,在此测试中,我们使用包含控制器"来重用测试片段.这些片段存储在src/test/jmeter/fragments中.我们尝试在include控制器

We are using Jmeter-maven-plugin and created a maven project in eclipse. My test file (MainTest.jmx) is in src/test/jmeter folder, in this test we used "include controller" to reuse test fragments. These fragments are stored in src/test/jmeter/fragments. We tried following relative path in include controller

  1. ../fragments/FragmentA.jmx

  1. ../fragments/FragmentA.jmx

src/test/jmeter/fragments/FragmentA.jmx

src/test/jmeter/fragments/FragmentA.jmx

尝试了pom.xml中的propertiesUser选项

Tried propertiesUser option in pom.xml

<propertiesUser>
                <fragments.directory>src/test/jmeter/fragments</fragments.directory>
</propertiesUser>

包含控制器无法加载.jmx文件.追随

Include controller failing to load .jmx file. Getting following

错误 o.a.j.c.IncludeController:包含控制器包含控制器" 无法加载'$ {__ P(fragments.directory)}/fragmentA.jmx'-请参阅日志以获取 详细信息.

ERROR o.a.j.c.IncludeController: Include Controller 'Include Controller' can't load '${__P(fragments.directory)}/fragmentA.jmx' - see log for details.

java.io.IOException:loadIncludedElements-失败: E:\ Luna \ ADXJmeter \ target \ jmeter \ bin \ $ {__ P(fragments.directory)} \ FragmentA.jmx和E:\ Luna \ ADXJmeter \ target \ jmeter \ testFiles \ $ {__ P(fragments.directory)} \ FragmentA.jmx

java.io.IOException: loadIncludedElements -failed for: E:\Luna\ADXJmeter\target\jmeter\bin\${__P(fragments.directory)}\FragmentA.jmx and E:\Luna\ADXJmeter\target\jmeter\testFiles\${__P(fragments.directory)}\FragmentA.jmx

完整日志

> 2017-05-24 12:14:39,442 INFO o.a.j.c.IncludeController: loadIncludedElements -- try to load included module: E:\Luna\ADXJmeter\target\jmeter\bin\FragmentA.jmx
> 2017-05-24 12:14:39,442 INFO o.a.j.c.IncludeController: loadIncludedElements -failed for: E:\Luna\ADXJmeter\target\jmeter\bin\FragmentA.jmx
> 2017-05-24 12:14:39,442 INFO o.a.j.c.IncludeController: loadIncludedElements -Attempting to read it from: E:\Luna\ADXJmeter\target\jmeter\testFiles\FragmentA.jmx
> 2017-05-24 12:14:39,442 ERROR o.a.j.c.IncludeController: Include Controller 'Include Controller' can't load 'FragmentA.jmx' - see log for details
> 2017-05-24 12:14:39,443 ERROR o.a.j.u.JMeterUtils: Including file "FragmentA.jmx" failed for Include Controller "Include Controller", unexpected error - see log for details
> 2017-05-24 12:14:39,443 WARN o.a.j.c.IncludeController: Including file "FragmentA.jmx" failed for Include Controller "Include Controller", unexpected error
> java.io.IOException: loadIncludedElements -failed for: E:\Luna\ADXJmeter\target\jmeter\bin\FragmentA.jmx and E:\Luna\ADXJmeter\target\jmeter\testFiles\FragmentA.jmx
>	at org.apache.jmeter.control.IncludeController.loadIncludedElements(IncludeController.java:139) [ApacheJMeter_components-3.2.jar:3.2 r1790748]
>	at org.apache.jmeter.control.IncludeController.resolveReplacementSubTree(IncludeController.java:111) [ApacheJMeter_components-3.2.jar:3.2 r1790748]
>	at org.apache.jmeter.JMeter.runNonGui(JMeter.java:936) [ApacheJMeter_core-3.2.jar:3.2 r1790748]
>	at org.apache.jmeter.JMeter.startNonGui(JMeter.java:910) [ApacheJMeter_core-3.2.jar:3.2 r1790748]
>	at org.apache.jmeter.JMeter.start(JMeter.java:538) [ApacheJMeter_core-3.2.jar:3.2 r1790748]
>	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
>	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
>	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
>	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]

推荐答案

您已阅读文档,然后尝试以这种方式使用包含控制器?

Have you read the documentation prior to attempting to use Include Controller this way?

该元素在文件名字段中不支持变量/函数. 但是,如果定义了属性includecontroller.prefix,则使用内容作为路径名的前缀.

This element does not support variables/functions in the filename field. However, if the property includecontroller.prefix is defined, the contents are used to prefix the pathname.

同一章提供了线索:您具有includecontroller.prefix属性,JMeter将尝试在includecontroller.prefix + Filename

The same chapter provides the clue: you have includecontroller.prefix property and JMeter will attempt to find the file under the path of includecontroller.prefix + Filename

因此,您应该修改配置,如下所示:

So you should amend your configuration as follows:

<propertiesUser>                
    <includecontroller.prefix>src/test/jmeter/fragments</includecontroller.prefix>
</propertiesUser>

并仅在包含控制器中使用FragmentA.jmx.

And use just FragmentA.jmx in the Include Controller.

查看如何管理大型JMeter带有JMeter测试片段的脚本,以获取有关使用模块化JMeter测试的更多信息.

Check out How to Manage Large JMeter Scripts With JMeter Test Fragments for more information on working with modular JMeter tests.

这篇关于Jmeter包含控制器相对路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆