我在两天内遇到了一些任务。我有JUnit测试,它将在JMeter上执行,这是代码:
public class LoadTest5 extends TestCase {
private WebDriver driver;
public LoadTest5(){}
public LoadTest5(String testName){
super(testName);
}
@BeforeClass
public void setUp() throws Exception {
super.setUp();
driver = new FirefoxDriver();
driver.get("link"); //just hide the link
}
@Test
public void testTestLoad() throws InterruptedException {
driver.findElement(By.id("loginForm:authLogin")).sendKeys("LoadTest5");
driver.findElement(By.id("loginForm:authPassword")).sendKeys("Abc123");
driver.manage().timeouts().implicitlyWait(60, TimeUnit.MILLISECONDS);
driver.findElement(By.id("loginForm:btnLogin")).click();
driver.manage().timeouts().implicitlyWait(2000, TimeUnit.MILLISECONDS);
driver.findElement(By.xpath(".//*[@id='settingsLink']/a")).click();
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
driver.findElement(By.xpath("//a[@class='logout']")).click();
System.out.println();
}
@AfterClass
public void tearDown() throws Exception {
super.tearDown();
driver.quit();
}
}
我将在JMeter中的5个线程中运行此测试,我需要为所有步骤编写执行时间。例如Step - Login:
driver.findElement(By.id("loginForm:authLogin")).sendKeys("LoadTest5");
driver.findElement(By.id("loginForm:authPassword")).sendKeys("Abc123");
driver.manage().timeouts().implicitlyWait(60, TimeUnit.MILLISECONDS);
driver.findElement(By.id("loginForm:btnLogin")).click();
计算执行和写入.csv的时间,并执行其他步骤。我可以通过一个测试来完成它,但是如果它将是2个或更多我无法使用一个.csv文件。 我该怎么做? 可能是在JMeter中做到这一点的一些方法,并制作图表结果?
答案 0 :(得分:0)
我建议将您的步骤拆分为单独的JUnit请求,例如
您还可以使用WebDriver Sampler插件,它提供JMeter和Selenium的无缝集成,在这种情况下,您将能够在JMeter中修改代码,而无需在更改或更新时重新编译它并拆分您的以更简单的方式在单独的采样器中测试。有关迁移和使用提示和技巧,请参阅The WebDriver Sampler: Your Top 10 Questions Answered。