Unit testing 协作web应用的端到端UI测试?
我们有一个协作web应用程序,在用户a的浏览器中执行的操作将在用户B的浏览器中产生副作用。聊天室是应用程序的一部分,也是我们尝试测试的一个很好的例子 我们当前的堆栈是:Unit testing 协作web应用的端到端UI测试?,unit-testing,angularjs,jasmine,end-to-end,Unit Testing,Angularjs,Jasmine,End To End,我们有一个协作web应用程序,在用户a的浏览器中执行的操作将在用户B的浏览器中产生副作用。聊天室是应用程序的一部分,也是我们尝试测试的一个很好的例子 我们当前的堆栈是: 前端的AngularJS Express在节点上运行以提供静态文件 在节点上运行Socket.IO以处理客户端浏览器之间的web套接字通信 我们构建过程的早午餐 角形种子是我们测试的起点 Jasmine用于实际测试框架 TestCular运行测试 测试这个的最好方法是什么?我所说的“最好”是指“任何”。完全集成测试需要2个浏
- 前端的AngularJS
- Express在节点上运行以提供静态文件
- 在节点上运行Socket.IO以处理客户端浏览器之间的web套接字通信
- 我们构建过程的早午餐
- 角形种子是我们测试的起点
- Jasmine用于实际测试框架
- TestCular运行测试
有没有人见过此类测试的文档或示例(最好是Jasmine的TestCular,但我们可以选择)?即使是关于使用什么搜索词的建议也会有所帮助。我不确定我的建议是否会对你有所帮助,但无论如何 我想到的第一个工具是。好消息是(基于您当前使用的堆栈),您可以使用
JavaScript
编写测试。下面是一个示例,它在Google
上搜索术语“Cheese”,然后将结果页面的标题输出到控制台:
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可以“打开”更多浏览器实例,这意味着您将能够测试它们之间的副作用/交互
作为替代方案,您也可以查看使用Selenium或(Spudley也提到)作为测试工具的project或商业产品。如果您愿意接受其他选项,我建议您将其作为自动浏览器测试工具。听到您提出的解决方案真的很有趣……奇怪,WindMill不支持Mac上的Chrome?这是我们默认的开发和测试环境。