我的Jmeter脚本的SetUp部分包含在生成实际负载之前绕过Web应用程序的登录页面的步骤.作为这些步骤的结果,服务器设置了证明成功登录的特定cookie.
为此,我的脚本应该执行由服务器响应注入的Javascript函数.由于它是一次性过程,我使用WebDriver并在浏览器实例中执行Javascript.
但是我绝对不能像加载线程的一部分那样做,因为WebDriver对于性能测试来说并不是一个好主意(根本不是).
但是,我仍然想知道它是一种在不创建浏览器实例的情况下计算JS的方法,因为我的JS脚本只是算术计算(尽管很复杂).所以,
提前感谢任何想法.
Dmi*_*i T 10
您可以使用JSR223 Sampler,javascript从"语言"下拉列表中选择并将代码放在"脚本"区域中
您可以使用WebDriver Sampler对浏览器中的所有线程使用单个浏览器实例,例如:
var ctx = org.apache.jmeter.threads.JMeterContextService.getContext()
var vars = ctx.getVariables();
for (var i=0; i< THREADS_NUMBER; i++) {
WDS.browser.manage().deleteAllCookies()
WDS.browser.get('LOGIN_PAGE_URL')
var cookie = WDS.browser.manage().getCookieNamed("COOKIE_NAME").getValue();
vars.put("cookie" + i, cookie);
}
Run Code Online (Sandbox Code Playgroud)
它将生成JMeter变量,如:
cookie1=foo
cookie2=bar
etc.
Run Code Online (Sandbox Code Playgroud)因此,您可以使用__threadNum()函数在需要时引用变量值,如:
${__evalVar(cookie${__threadNum})}
Run Code Online (Sandbox Code Playgroud)
有关使用WebDriver采样器的更多信息,请参阅WebDriver采样器:您回答的十大问题指南.