我尝试使用(jp @ gc - HtmlUnit Driver Config)使用jmeter创建无头浏览器测试,但是我收到此错误
响应消息:com.gargoylesoftware.htmlunit.ScriptException:ReferenceError:未定义“getComputedStyle”。
我在线阅读并建议jp @ gc - HtmlUnit Driver Config不支持javascript。有没有办法通过jmeter来解决这个问题?或者是否有其他选项来进行无头浏览器测试。我有linux服务器作为加载注入器
更新
我有一个webdriver采样器可以打开谷歌页面
WDS.sampleResult.sampleStart()WDS.browser.get('http://google.com') WDS.sampleResult.sampleEnd()
已经下载了Phanton JS,但是当我运行它时,报告中没有显示任何内容。我应该添加任何其他配置吗?
答案 0 :(得分:1)
HtmlUnit 不支持JS。
我做了很多测试并且使用了每一个,我可以说 PHANTOMJS 是最好的,并且得到了所有JS / CSS的良好支持......有一个漂亮的渲染器可以获得很好的截图。 通过代码你可以像这样使用它(你可以从这里下载http://phantomjs.org/download.html(phantomjs-1.9.8非常稳定)):
Capabilities caps = new DesiredCapabilities();
((DesiredCapabilities) caps).setJavascriptEnabled(true);
((DesiredCapabilities) caps).setCapability("takesScreenshot", true);
((DesiredCapabilities) caps).setCapability(
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"your custom path\\phantomjs.exe"
);
WebDriver driver = new PhantomJSDriver(caps);
如果您想通过JMeter GUI执行此操作,则需要在Logic Controller
元素JSR223 Sampler
之前添加org.openqa.selenium.Capabilities caps = new org.openqa.selenium.remote.DesiredCapabilities();
((org.openqa.selenium.remote.DesiredCapabilities) caps).setJavascriptEnabled(true);
((org.openqa.selenium.remote.DesiredCapabilities) caps).setCapability("takesScreenshot", true);
((org.openqa.selenium.remote.DesiredCapabilities) caps).setCapability(
org.openqa.selenium.phantomjs.PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"your custom path\\phantomjs.exe");
org.openqa.selenium.WebDriver driver = new org.openqa.selenium.phantomjs.PhantomJSDriver(caps);
org.apache.jmeter.threads.JMeterContextService.getContext().getCurrentSampler().getThreadContext()
.getVariables().putObject(com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.BROWSER, driver);
JSR223_Sampler
并在脚本面板中:
public static final String imageAttachment="css=img[data-mce-src^='cid']&&[data-mce-src$='@']";
如果您需要更多信息,请不要犹豫。