如何写的JMeter Groovy脚本

问题描述 投票:0回答:1

你好社区#1, 我是新来的JMeter和相关的东西。 只是登录请求,并通过硒的webdriver取样响应(使用Java脚本)完成。 屏幕截图也连接到这条信息。所有的好工作。 现在,我经历了一些文章,他们强调使用Groovy脚本(JSR223下采样),但我无法弄清楚如何将这个相同的JavaScript(WDS采样)在Groovy(JSR223采样)转换可运行Script.I会很感激在这个方向上的帮助任何一种。谢谢

常规(Groovy的2.4.15 / Groovy的脚本引擎2.0)已经显示在我的JSR223采样[即时通讯使用Apache的JMeter的-5.0]我运行Hello World程序的fine..further工作我不知道ABT如何使用Groovy脚本玩。 下面是我的代码在javascipt的(硒WDS)

WDS.sampleResult.sampleStart();
WDS.log.info("Maximo Application ---- Sample started");
var pkg = JavaImporter(org.openqa.selenium); //WebDriver classes
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait); 
var wait = new support_ui.WebDriverWait(WDS.browser, 5000);
var conditions=org.openqa.selenium.support.ui.ExpectedConditions;
var selenium_keys=JavaImporter(org.openqa.selenium.Keys);
WDS.sampleResult.getLatency();
//-----------------------------Login in Application---------------------------------------------

WDS.browser.get('http://xxxxxxxxxxxxxxx/maximo/webclient/login/login.jsp'); //opens website  
WDS.log.info("Maximo Application ---- Username and Password dynamicly picked from C:/user.csv ");

//UserName
var userName = WDS.browser.findElement(pkg.By.id('username'));  
WDS.log.info("Maximo Application ---- Username "+'${username}');
userName.click(); 
userName.sendKeys('${username}'); 
//Password
var password=WDS.browser.findElement(pkg.By.id("password"));
password.click();
WDS.log.info("Maximo Application ---- password "+'${password}');
password.clear();
password.sendKeys('${password}');
WDS.browser.findElement(pkg.By.id("loginbutton")).click();
WDS.log.info("Maximo Application ---- Logged by USER Name--- "+ '${username}');
WDS.sampleResult.sampleEnd();

我真的文恩对常规切换为所有未来的方案将是复杂的

WDS_javascript

selenium-webdriver groovy jmeter performance-testing
1个回答
0
投票

我可以给你关于你的代码的指导。

在一般情况下,即使你在JMeter的使用javascript - 你是调用Java方法。

常规会做相同的,但在语法上是接近的Java。

所以:

  • def代替var声明变量
  • 改变JavaImporter(XYZ)在脚本的开始import XYZ
  • 删除所有Java导入的变量,因为他们没有必要的。如support_ui

只是一个例子:

import org.openqa.selenium.*; //need .* to import all classes from package
import org.openqa.selenium.support.ui.WebDriverWait; //import exact class

WDS.sampleResult.sampleStart(); //code remains the same
//var pkg = JavaImporter(org.openqa.selenium); //moved to import
//var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait); //moved to import
def wait = new WebDriverWait(WDS.browser, 5000); //removed `support_ui.`

def userName = WDS.browser.findElement(By.id('username')); //removed `pkg.`

最后只是学习Java和常规

© www.soinside.com 2019 - 2024. All rights reserved.