簡體   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