gpt4 book ai didi

unit-testing - 协作 Web 应用程序的端到端 UI 测试?

转载 作者:行者123 更新时间:2023-12-04 04:09:57 27 4
gpt4 key购买 nike

我们有一个协作网络应用程序,其中在用户 A 的浏览器中执行的操作将对用户 B 的浏览器产生副作用。聊天室是应用程序的一部分,也是我们尝试测试的一个很好的例子。

我们目前的堆栈是:

  • 前端的AngularJS
  • Express 在 Node 上运行以提供静态文件
  • Socket.IO 在 Node 上运行以处理客户端浏览器之间的 Web 套接字通信
  • 我们构建过程的早午餐
  • Angular Seed 是我们测试的起点
  • Jasmine 用于实际测试框架
  • Testacular 运行测试

  • 对此进行测试的最佳方法是什么? “最好”是指“任何”。完整的集成测试需要 2 个浏览器和 2 个 Web 服务器(HTML 和 Web 套接字)。两个 Web 服务器都在 Node 上运行,因此至少它与 Testacular 的其余部分处于相同的环境中。

    在我看来,这将需要
  • 启动我们的套接字服务器的一个实例
  • 在 Jasmine 中启动 Web 浏览器,并保留对该浏览器 A 的引用
  • 启动另一个浏览器,即浏览器 B,并保留该引用。
  • 向浏览器 A 发出命令并在浏览器 B 中测试结果更改。

  • 有没有人遇到过这种测试的文档或示例(最好在 Testacular 和 Jasmine 中,但我们可以选择)?甚至关于使用哪些搜索词的建议也会有所帮助。

    最佳答案

    我不确定我的建议是否会帮助你,但无论如何。

    我想到的第一个工具是 Selenium .好消息(基于您当前使用的堆栈)是您可以使用 JavaScript用于写作测试。这是在 Google 上搜索术语“奶酪”的示例然后将结果页面的标题输出到控制台:

    var driver = new webdriver.Builder().build();
    driver.get('http://www.google.com');

    var element = driver.findElement(webdriver.By.name('q'));
    element.sendKeys('Cheese!');
    element.submit();

    driver.getTitle().then(function(title) {
    console.log('Page title is: ' + title);
    });

    driver.wait(function() {
    return driver.getTitle().then(function(title) {
    return title.toLowerCase().lastIndexOf('cheese!', 0) === 0;
    });
    }, 3000);

    driver.getTitle().then(function(title) {
    console.log('Page title is: ' + title);
    });

    driver.quit();

    我认为使用 Selenium 2 有可能“打开”更多浏览器实例 - 这意味着您将能够测试它们之间的副作用/交互。

    作为替代方案,您也可以查看 WindMill项目, UItest.js或商业产品 Twist使用 Selenium 或(Spudley 也提到) Sahi作为 driver用于测试。

    关于unit-testing - 协作 Web 应用程序的端到端 UI 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284281/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com