繁体   English   中英

如何在Jmeter中编写Groovy脚本

[英]How to write groovy Script in Jmeter

您好Stackoverflow社区,
我是Jmeter和相关人员的新手。
通过Selenium WebDriver Sampler(使用Java脚本)完成登录请求和响应。
此帖子也附有屏幕截图。 一切正常。
现在我浏览一些文章,他们重点介绍了使用Groovy脚本(在JSR223 Sampler下),但是我无法弄清楚如何在Groovy(JSR223 sampler)可运行脚本中转换相同的Javascript(WDS sampler)。我将非常感谢在这方面的任何帮助。 谢谢

groovy(Groovy 2.4.15 / Groovy Scripting Engine 2.0)已经显示在我的JSR223采样器中[使用apache-jmeter-5.0即时显示]我运行了hello world程序,它的工作正常。.我还不知道如何使用groovy脚本。
以下是我在Javascipt(Selenium 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();

我真的要开始使用Groovy,因为所有即将出现的情况都将变得非常复杂

WDS_javascript

我可以为您提供有关您的代码的指导。

通常,即使在jmeter中使用javascript时,您也在调用java方法。

groovy会做同样的事情,但是在语法上更接近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和groovy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM