怎么模拟多用户进直播间

image.png

实现效果如上

1、需求是模拟多用户进直播间,测试主播的花名册中多页用户的展示
2、分析用户进直播间的操作,因为项目接入的第三方直播拓课云,和相关开发沟通完知道每个访问的url中有3个值是变得:房间号,用户昵称,用户id,即保证房间号是同一个,而昵称和id自己定义为不同的就可以。
3、通过selenium+for循环打开10个窗口,自动改变用户id,可实现模拟10个不同用户在直播间,但会发现一个问题,每个页面都需要授权视频摄像头及麦克风后才能进入直播间,这样是半自动化+半手工,没有完全脱离手工,如果4个电脑模拟40个用户,则需要40次操作授权
4、通过不屑努力找到如下方法解决

  public static void main(String[] args)  {
        System.setProperty("webdriver.chrome.driver", "res/chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\Default");//默认google浏览器的配置文件路径
        options.addArguments("--start-maximized");
        WebDriver driver = new ChromeDriver(options);
        driver.get("http://baidu.com");
        for (int i = 0; i < 9; i++) {
            driver.manage().window().maximize();
            //要打开的链接
            String js = "http://xxxx/username/" + name + i + "/usertype/2/pid/" + id + i + "/ts/xxxx/";
            JavascriptExecutor jse = (JavascriptExecutor) driver;
            jse.executeScript("window.open('" + js + "')");//通过js打开新窗口在新窗口中打开上面的链接
            List it1 = new ArrayList(driver.getWindowHandles());
            System.out.println(it1.size());
            driver.switchTo().window(it1.get(it1.size() - 1));//切换到最新的窗口句柄
        }
    }
}

核心点:1、加载默认浏览器的配置解决重复授权摄像头和麦克风的问题
2、打开新窗口在新窗口中打开要测的url,需要切换窗口句柄。
这么做的原因是:授权弹框的元素无法定位,它不在html中。如下图


image.png

你可能感兴趣的:(怎么模拟多用户进直播间)