【问题标题】:Generate and store random variables生成和存储随机变量
【发布时间】:2018-03-18 00:21:52
【问题描述】:

我正在尝试创建一些动态的用户定义变量,在 JMETER 的 http 请求中使用它们,并将它们保存到文件中。基本上我正在测试帐户的创建,并想保存我创建的帐户。

问题是当我使用 用户定义变量 然后将值设置如下时,它只生成随机字符串 一次 并且在随后的循环中它使用相同的数据并且由于电子邮件已经存在而失败:

FIRSTNAME1      Bob${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}
LASTNAME1       Surname${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}
EMAIL1          Bob${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}@emailaddres.com

要将其保存到我使用的文件中:

name1 = vars.get("EMAIL1");
name2 = vars.get("FIRSTNAME1");
name3 = vars.get("LASTNAME1");

f = new FileOutputStream("C://test/Register_new_user_Jmeter.csv", true); 
p = new PrintStream(f); 
this.interpreter.setOut(p); 
p.println(name1 + "," + name2 + "," + name3);
f.close(

如何进行设置,以便生成随机字符串、使用它们创建新帐户并将信息保存到文件中?谢谢

【问题讨论】:

  • 你说代码在循环中,但我没有看到循环。也许您应该粘贴整个代码。如图所示,name1,2 和 3 仅初始化一次。如果您希望每次生成的名称都不同,您可以使用相同的变量,然后在您的“循环”主体中使用您的函数重新分配它们的值
  • 我的意思是有一个 JMeter 线程,我在那里设置了循环。上面的代码 sn-p 在循环内的一个 beanshell 处理器中。

标签: jmeter


【解决方案1】:

是的,User Defined Variables 用于定义一次(静态)变量,使用其他组件,尤其是动态值的用户参数。

如果运行时元素(例如用户参数预处理器或正则表达式提取器)定义了一个与 UDV 变量之一同名的变量,则这将替换初始值,并且线程中的所有其他测试元素将查看更新后的值。

User Parameters 正在创建与用户定义变量相同的变量,但可以覆盖先前的值

如果线程数多于值,则重新使用这些值。例如,这可用于分配一个不同的用户 ID,供每个线程使用。用户变量可以在任何 JMeter 组件的任何字段中引用。

【讨论】:

  • 哦,干得好!非常感谢。完美运行。
猜你喜欢
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多