如何将存储在数据库中的唯一标识传递给JMeter中的HTTP请求

问题描述:

在我的JMeter脚本中,当我使用HTTP REQUEST保存设备详细信息时,在数据库中存储唯一的自动递增id(假设123)。然后在同一个脚本中,当我在先前保存的设备上添加Incentive时,在它的HTTP REQUEST中添加唯一ID(123)。由于该ID是从数据库中提取的,所以我无法得到。如何将存储在数据库中的唯一标识传递给JMeter中的HTTP请求

最初我在考虑使用COUNTER并从一个没有存储在数据库中的高数字开始,但它不起作用,因为它需要在节省设备时产生相同的ID。

我使用HTTP(S)TEST SCRIPT RECORDER创建了我的JMeter脚本。

+0

发布您的脚本。 – awd

连接到您需要JDBC Connection Configuration和正确定义的数据库连接,然后你需要添加JDBC元素JDBC PreProcessor(或采样),并添加此ID,查询类型的选择数据库:Select Statement,查询将被例如select sequnceName.NEXTVAL from dual Oracle数据库中,你可以把序列导致Result variable name,例如mySequence后来在JSR使用223元:

columnValue = vars.getObject("mySequence").get(0).get("NEXTVAL"); 
+0

谢谢你的答案...有什么办法,但不添加JDBC连接配置? – shivam

+0

如果你有一个API来创建新的序列并将其返回,你可以使用它 – user7294900

所以,你可以提取在“设备详细信息”请求/响应生成的ID和使用JSR223后处理器将其保存在外部.csv文件中,并将.csv文件用于“激励”请求。

通过这种方式,您可以消除数据库调用,并且脚本仅针对HTTP请求运行,而且周转时间更短。