JMeter不会将$ {SUBPANEL_RELATE_MODULE_g1}替换为其值

时间:2011-06-29 21:17:34

标签: jmeter

这是一个很长的故事,但我会尽量简单:

  1. 我使用MeterMaid生成了SugarMMM个XML文件;我只选择了帐户模块:

    enter image description here

  2. 我使用MeterMaid将上述文件转换为JMeter格式(我将测试合并为一个文件,并将其命名为“filename.xml”):

    ruby GenMeter.rb --inputfile=filename.xml --outputfile=filename.jmx
    
  3. 我做了必要的CSV设置。所有CSV文件都包含用于测试并发用户登录的登录详细信息(usr,pwd)。这部分确实很有效。

  4. 当我运行测试时,我可以看到一大堆${}变量被转换为相应的值。遗憾的是,${SUBPANEL_RELATE_MODULE_g1}没有得到解决......这里是GET网址(来自查看结果树监听器组件)的样子:

    http://localhost/sugarcrm/index.php?module=${SUBPANEL_RELATE_MODULE_g1}&action=Popup&hide_clear_button=true&mode=MultiSelect&create=true&metadata=undefined
    

    请注意,它不是唯一未解决的变量。以下屏幕截图显示了其他失败的测试,所有测试都是由其他变量引起的,这些变量未被相应的值替换:

    enter image description here

    以下是这个变量的设置方式(在使用它之前):

    enter image description here

    以下是 Debug Sampler 所说的内容:

    JMeterVariables:
    CAMPAIGN_ID=CAMPAIGN_ID_ERROR
    CAMPAIGN_NAME=CAMPAIGN_NAME_ERROR
    CONTACT_ID=997a3171-aa60-b2d6-a457-4e0ba8b0052b
    CONTACT_ID_g=4
    CONTACT_ID_g0=onclick="send_back('Contacts','997a3171-aa60-b2d6-a457-4e0ba8b0052b');">Prof
    CONTACT_ID_g1=onclick="send_back('Contacts','
    CONTACT_ID_g2=997a3171-aa60-b2d6-a457-4e0ba8b0052b
    CONTACT_ID_g3=');">
    CONTACT_ID_g4=Prof
    CONTACT_NAME=Prof
    CONTACT_NAME_g=4
    CONTACT_NAME_g0=onclick="send_back('Contacts','997a3171-aa60-b2d6-a457-4e0ba8b0052b');">Prof
    CONTACT_NAME_g1=onclick="send_back('Contacts','
    CONTACT_NAME_g2=997a3171-aa60-b2d6-a457-4e0ba8b0052b
    CONTACT_NAME_g3=');">
    CONTACT_NAME_g4=Prof
    FOUND_ID=1
    JMeterThread.last_sample_ok=true
    JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@3c1635
    MEMBER_OF_ID=d7c26344-cad8-0503-b02a-4e0cb4db3985
    MEMBER_OF_ID_g=4
    MEMBER_OF_ID_g0=onclick="send_back('Accounts','d7c26344-cad8-0503-b02a-4e0cb4db3985');">searchSearchForm
    MEMBER_OF_ID_g1=onclick="send_back('Accounts','
    MEMBER_OF_ID_g2=d7c26344-cad8-0503-b02a-4e0cb4db3985
    MEMBER_OF_ID_g3=');">
    MEMBER_OF_ID_g4=searchSearchForm
    MEMBER_OF_NAME=searchSearchForm
    MEMBER_OF_NAME_g=4
    MEMBER_OF_NAME_g0=onclick="send_back('Accounts','d7c26344-cad8-0503-b02a-4e0cb4db3985');">searchSearchForm
    MEMBER_OF_NAME_g1=onclick="send_back('Accounts','
    MEMBER_OF_NAME_g2=d7c26344-cad8-0503-b02a-4e0cb4db3985
    MEMBER_OF_NAME_g3=');">
    MEMBER_OF_NAME_g4=searchSearchForm
    OPPORTUNITY_ID=864e402f-0d76-ab6e-b54f-4e0cb42f0249
    OPPORTUNITY_ID_g=4
    OPPORTUNITY_ID_g0=onclick="send_back('Opportunities','864e402f-0d76-ab6e-b54f-4e0cb42f0249');">value
    OPPORTUNITY_ID_g1=onclick="send_back('Opportunities','
    OPPORTUNITY_ID_g2=864e402f-0d76-ab6e-b54f-4e0cb42f0249
    OPPORTUNITY_ID_g3=');">
    OPPORTUNITY_ID_g4=value
    OPPORTUNITY_NAME=value
    OPPORTUNITY_NAME_g=4
    OPPORTUNITY_NAME_g0=onclick="send_back('Opportunities','864e402f-0d76-ab6e-b54f-4e0cb42f0249');">value
    OPPORTUNITY_NAME_g1=onclick="send_back('Opportunities','
    OPPORTUNITY_NAME_g2=864e402f-0d76-ab6e-b54f-4e0cb42f0249
    OPPORTUNITY_NAME_g3=');">
    OPPORTUNITY_NAME_g4=value
    RANDOM_CHAR=o
    RANDOM_CHAR_g=1
    RANDOM_CHAR_g0=o
    RANDOM_CHAR_g1=o
    RANDOM_STRING=value
    RANDOM_STRING_g=1
    RANDOM_STRING_g0=value
    RANDOM_STRING_g1=value
    RECORD_NAME=NOT_FOUND
    RECORD_NUMBER=3250317d-6c79-b20d-5e36-4e0cb4746e84
    RECORD_NUMBER_g=2
    RECORD_NUMBER_g0=javascript:lvg_nav('Accounts', '3250317d-6c79-b20d-5e36-4e0cb4746e84
    RECORD_NUMBER_g1=javascript:lvg_nav('Accounts', '
    RECORD_NUMBER_g2=3250317d-6c79-b20d-5e36-4e0cb4746e84
    SEARCH_FIELD=SEARCH_FIELD_ERROR
    START.HMS=190308
    START.MS=1309453388621
    START.YMD=20110630
    SUBPANEL_RELATE_MODULE=Accounts
    TEAM_ID=seed-Teams8
    TEAM_ID_g=4
    TEAM_ID_g0=onclick="send_team_to_form('Teams','seed-Teams8');">Ball
    TEAM_ID_g1=onclick="send_team_to_form('Teams','
    TEAM_ID_g2=seed-Teams8
    TEAM_ID_g3=');">
    TEAM_ID_g4=Ball
    TEAM_NAME=Ball
    TEAM_NAME_g=4
    TEAM_NAME_g0=onclick="send_team_to_form('Teams','seed-Teams8');">Ball
    TEAM_NAME_g1=onclick="send_team_to_form('Teams','
    TEAM_NAME_g2=seed-Teams8
    TEAM_NAME_g3=');">
    TEAM_NAME_g4=Ball
    TESTSTART.MS=1309455500088
    pwd=user1
    usr=user1
    

    更新

    模板更改为$1$$2$$3$$4$

    之后

    enter image description here

    这是调试输出(采样器放在正则表达式控制器之后):

    JMeterVariables:
    JMeterThread.last_sample_ok=true
    JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@18fde89
    RANDOM_CHAR=t
    RANDOM_CHAR_g=1
    RANDOM_CHAR_g0=t
    RANDOM_CHAR_g1=t
    RANDOM_STRING=Tanzania
    RANDOM_STRING_g=1
    RANDOM_STRING_g0=Tanzania
    RANDOM_STRING_g1=Tanzania
    RECORD_NAME=NOT_FOUND
    RECORD_NUMBER=DOCTYPE
    RECORD_NUMBER_g=1
    RECORD_NUMBER_g0=DOCTYPE
    RECORD_NUMBER_g1=DOCTYPE
    START.HMS=100932
    START.MS=1312531772599
    START.YMD=20110805
    SUBPANEL_RELATE_MODULE=Accounts
    TESTSTART.MS=1312542237235
    pwd=user1
    usr=user1
    

5 个答案:

答案 0 :(得分:1)

在您的CSV数据集配置中验证所有变量都已正确声明(没有拼写错误,没有遗漏,变量名前没有空格等)

我还建议在树中添加debug sampler高,因为它会显示每个变量及其值,并可以节省大量时间。

修改

看起来您的正则表达式设置不正确,无法创建多个组。如果您查看Debug采样器,则表示SUBPANEL_RELATE_MODULE=Accounts但不是SUBPANEL_RELATE_MODULE_g1=。这意味着您没有GROUPS设置。

在查看你的正则表达式时,行template: $0$说“只给我一个组”,而看起来你想要4.因此,你应该尝试template: $1$$2$$3$$4$第一场比赛应该{ {1}}第二个_g1等等。查看manual for details.

答案 1 :(得分:1)

在正则表达式提取器定义后,在整个脚本中明智地使用$ {SUBPANEL_RELATE_MODULE_g1}变量。验证它是否存在。在控制器标题,测试标题,测试开始时和测试结束时使用它。

这将有助于缩小范围

通过这种方式,您可以在脚本中跟踪它,以确保它在使用之前就存在,并找到它发生故障的位置。基本上是打印语句调试。

答案 2 :(得分:0)

我不知道糖CRM或计量器,但对于jmeter我有一个类似的变量问题没有解决。

检查此变量是否在某处声明,或者您需要编写一个reg ex来从上一个请求中提取该值。

我遇到的问题是我从CSV文件中提取变量

变量名称为 CONTRACTNO,CLIENTNO

我的网址: / SomeURL / bla?eventId = contractSelected& contractNoSelected = $ {CONTRACTNO}& applicationID = BLa

它没有用,所以我将csv文件中的变量名改为:

CONTRACTNO,CLIENTNO (看看我删除了一个空格)

Jmeter在名称和变量定义方面往往非常挑剔。

答案 3 :(得分:0)

您期望以下值

${SUBPANEL_RELATE_MODULE_g1}

但您已将正则表达式提取器引用名称配置为

"SUBPANEL_RELATE_MODULE"

您可以通过两个选项获取值

  1. 您必须将${SUBPANEL_RELATE_MODULE_g1}更改为${SUBPANEL_RELATE_MODULE}
  2. 您必须将正则表达式提取器引用名称更改为"SUBPANEL_RELATE_MODULE _g1""SUBPANEL_RELATE_MODULE"
  3. 在此之后,您的值将被正确替换。

答案 4 :(得分:0)

看起来您的正则表达式没有匹配,您的默认值设置为"帐户"并在您的调试输出中,该变量的值。如果正则表达式匹配,您将只获得匹配组。

View Results Tree监听器现在有一个RegExp测试器,因此您可以转到请求您尝试从结果树中的结果中提取变量SUBPANEL_RELATE_MODULE,并从下拉列表中选择RegExp Tester "文本"

然后,您可以在RegExp测试器中的响应数据上运行正则表达式,并且可能发现它不匹配,然后磨练您的正则表达式,以便它匹配并在正则表达式提取器中更新它。