首页 > 解决方案 > 模拟多用户访问多个 URL 提交表单

问题描述

我想为以下场景开发负载测试工具:

  1. 从访问 WebForms 的 listUrls.txt 中读取列表 URL
  2. 在浏览器的一个窗口/选项卡上运行每个 URL,然后同时单击提交按钮。我研究了 selenium webDriver 和 Jmeter,但很难构建它。有什么解决方案来模拟这个吗?

标签: jmeterselenium-grid

解决方案


下面的快照是使用 csv 获取 URL 并使用 webdriver 采样器在浏览器中打开它们。我已经使用 csv 数据集配置从 csv 文件中获取 URL。您需要根据您的选择使用 Firefox/Chrome/InternetExplorer 驱动程序配置来配置浏览器。Firefox 很简单,但其他两个需要 selenium 浏览器 exe 来启动浏览器。

在此处输入图像描述

要在网络表单中输入数据,请检查以下内容以熟悉语法:-

var pkg = JavaImporter(org.openqa.selenium); //WebDriver classes
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait);//WebDriver classes
var wait = new support_ui.WebDriverWait(WDS.browser, 5000);

WDS.sampleResult.sampleStart();//captures sampler’s start time
WDS.sampleResult.getLatency();
WDS.log.info("Sample started");

WDS.browser.get('http://duckduckgo.com')//opens website specified in 'http://duckduckgo.com'
WDS.log.info("Sample ended - navigated to duckduckgo.com");

var searchField = WDS.browser.findElement(pkg.By.id('search_form_input_homepage'))//saves search field into searchField 
searchField.click()//clicks search field
searchField.sendKeys(['blazemeter'])//types word “blazemeter” in field
WDS.log.info("Searched for BlazeMeter");

var button = WDS.browser.findElement(pkg.By.id('search_button_homepage'))//Find Search button
button.click()//Click Search Button
WDS.log.info("Clicked on the search button");

var link = WDS.browser.findElement(pkg.By.cssSelector('#r1-0 > div > h2 > a.result__a > b'))//also saves selector as variable but uses CSS.
link.click()//Click the search result's Link

WDS.sampleResult.sampleEnd();

有关如何为网络表单设置和编写代码的更多信息......请查看以下链接:- https://guide.blazemeter.com/hc/en-us/articles/207421245-Selenium-Webdriver-Based-Testing https://www.blazemeter.com/blog/jmeter-webdriver-sampler

希望这可以帮助。


推荐阅读