我已经在使用单元测试确保当前Web应用程序中所有关键的部分都能正常工作。但是如何测试UI以确保用户按下按钮时出现适当的响应呢? - 我的意思是,如果突然“注册”按钮消失或停止工作,会造成很大的麻烦,因此我想进行这种UI测试是很常识的。从我到目前为止所读过的内容来看,Selenium, PhantomJS和Zombie似乎可以做我想要的事情,但我对它们知之甚少。但是还有什么其他选择,并且在进行这种类型的单元测试之前应该考虑什么?
“Phantom”和“Zombie”本质上是相同的东西。它们都是“无头浏览器”。无头浏览器的意思是,它表现得像一个简单的浏览器(打开页面、运行脚本、渲染内容、处理cookie等),但没有输出显示给用户。你可以使用JavaScript定义一个测试用例: 打开 www.example.com 页面 在“UserName”文本字段中插入文字“Bob” 点击“Good morning”按钮 检查(断言)“output”字段是否包含“Good morning Bob” “Selenium”是一组工具: “Selenium IDE”——Firefox的一个插件,可以记录并播放你执行的操作。这意味着不需要了解脚本语言就可以创建和运行测试用例! “Selenium WebDriver”——一个库,可以“接管”一些支持的浏览器。它实际上打开了一个选择的浏览器(如Firefox),并执行测试用例代码中描述的操作。(请注意,“Phantom”无头浏览器是WebDriver可以控制的浏览器之一。) 还有一些类似于用于负载测试的Grid,但我对此了解不多。 总之: 如果你只想测试前端,且熟悉JavaScript,请选择Phantom或Zombie。 如果你不想使用JavaScript,请选择Selenium IDE。 如果你想创建更复杂的测试用例(例如将一些内容放入数据库,然后在浏览器中执行一些操作),请使用Selenium WebDriver。