Как написать заводной скрипт в Jmeter - PullRequest
0 голосов
/ 05 февраля 2019

Hello Stackoverflow Community,
Я новичок в Jmeter и связанных с ним вещах.
Только что закончил с запросом входа и ответом через Selenium WebDriver Sampler (с помощью Java Script).
Снимок экрана также прилагается к этому сообщению,Все работает хорошо.
Теперь я перехожу к некоторым статьям, в которых основное внимание уделяется использованию Groovy-скрипта (в соответствии с JSR223 Sampler), но я не могу понять, как преобразовать этот же Javascript (WDS-сэмплер) в Groovy (JSR223-сэмплер), который можно запуститьСценарий. Я буду очень благодарен за любую помощь в этом направлении.Спасибо

groovy (Groovy 2.4.15 / Groovy Scripting Engine 2.0) уже отображается в моем сэмплере JSR223 [я использую apache-jmeter-5.0], я запускаю программу hello world, она работает нормально ... Более того, я понятия не имею,Как играть с 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();

Я действительно хочу включить Groovy, так как все будущие сценарии будут сложными

WDS_javascript

1 Ответ

0 голосов
/ 05 февраля 2019

Я мог бы дать вам руководство по вашему коду.

в целом, даже когда вы используете javascript в jmeter - вы вызываете методы 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

...