量角器 - 获取运行测试的selenium节点

时间:2016-04-14 14:16:08

标签: selenium protractor

我正在使用量角器进行一些端到端的测试。我们希望根据我们运行的selenium节点执行一组操作,以便在它们同时运行时避免某些测试相互干扰。我怎样才能获得我的selenium hub为我的测试分配的selenium节点?

通过重复问题的可能解决方案,我尝试了以下内容,看看testsession api会给我什么

browser.getSession().then(function (session) {
    var hub = "http://localhost:4444"; //IP or hostname of GRID

    var url = hub + "/grid/api/testsession?session=" + session.getId();
    console.log(url);
});

然后在我的测试运行时,我会从打印出的浏览器中手动点击网址

http://localhost:4444/grid/api/testsession?session=17e14d0e-38da-4269-b23c-3b2d52569383

但是我得到的回复是

{"success":false,"msg":"Cannot find test slot running session 8ca57382-d7d8-44ae-b3bc-8c1223c86805 in the registry."}

我现在应该以不同的方式参加会议吗?

1 个答案:

答案 0 :(得分:2)

所以请假设我的代码片段以帮助其他人找到解决方案

browser.driver.getCapabilities().then(function (capabilities) {
        var hub = "http://localhost:4444"; //IP or hostname of GRID

        var url = hub + "/grid/api/testsession?session=" + capabilities.caps_['webdriver.remote.sessionid'];

        var res = request('GET', url);
        var testSession = JSON.parse(res.getBody().toString());
        var URL = new urlParse(testSession.proxyId);
        console.log(URL.host);
    });