【问题标题】:Check Response code in Selenium WebDriver in Jmeter在 Jmeter 中检查 Selenium WebDriver 中的响应代码
【发布时间】:2020-06-23 13:39:43
【问题描述】:

我正在使用 Jmeter 中的 Selenium WebDriver 登录网页,并想检查所有链接是否正常工作。为此,我想检查单击链接时返回的响应代码。

var links = WDS.browser.findElements(pkg.By.cssSelector("a"));
var href;
links.forEach(myFunction);

function myFunction(item) {
    WDS.log.info("link value" + item);
    href = item.getAttribute("href");
    statusCode = new HttpResponseCode().httpResponseCodeViaGet(href);
    if(200 != statusCode) {
        System.out.println(href + " gave a response code of " + statusCode);
    }
}

但上面的代码似乎不起作用。如果有人能帮我解决这个问题,我会很高兴。 另外,在使用 javascript 的 Jmeter Selenium Webdriver 中,是否有任何替代方法可以检查所有链接是否正常工作?

【问题讨论】:

    标签: selenium-webdriver jmeter


    【解决方案1】:

    除非您向我们展示 HttpResponseCode().httpResponseCodeViaGet 野兽的代码以及来自 jmeter.log 文件的相关错误消息,否则我们无法为您提供帮助。

    如果上述函数是您从 StackOverflow 复制和粘贴的,我强烈怀疑它是否会起作用,因为 WebDriver Sampler 的语言不是您的浏览器正在执行的 JavaScript,它是浏览器的一个有限子集JavaScript 版本(例如那里没有XMLHttpRequest

    你有full access to underlying Java SDK and JMeter API,所以我建议你修改你的函数如下:

    var links = WDS.browser.findElements(org.openqa.selenium.By.cssSelector("a"));
    var href;
    links.forEach(myFunction);
    
    function myFunction(item) {
        WDS.log.info("link value" + item);
        href = item.getAttribute("href");
        var client = org.apache.http.impl.client.HttpClientBuilder.create().build()
        var request = new org.apache.http.client.methods.HttpGet(href)
        var response = client.execute(request)
        var statusCode = response.getStatusLine().getStatusCode()
        if(200 != statusCode) {
            WDS.log.error(href + " gave a response code of " + statusCode);
        }    
    }
    

    更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-07
      • 2012-07-04
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多