我有一项有趣的任务是为现有的Web应用程序构建复杂的工作流测试,该应用程序从未进行过单元测试或集成测试(所有开发人员/用户都没有结构或指导方针进行测试)。
目标是一个ASP.NET(无MVC)Web应用程序,已经构建了好几年。没有干净的MVC或任何其他模式,因此HTML输出非常糟糕(生成的ID,没有太多的css类,行css样式 - >难以测试)。 该应用程序是以数据为中心的,因此需要进行大量测试,数据库的状态对于测试非常重要。
我正在考虑以下工作流程: 1.重置数据库以测试启动数据 2.通过模拟用户交互运行创建和测试数据的测试
我正在玩Selenium IDE,但感觉不够结构化。 我正在梦想一个工具集,我可以在(文字)coffeescript / javascript中编写测试,可以在浏览器中执行(不需要无头测试),但我能找到的所有工具都旨在测试javascript函数而不是用户相互作用。
我的测试步骤必须是:
jasmine 能否测试这类用户互动?我只能找到javascript函数的jasmine测试或HTML元素的存在,但不能找到复杂的工作流程,而测试步骤相互依赖。
提前致谢!
答案 0 :(得分:3)
Selenium IDE无法实现这一目标。
Selenium构建于WebDriver JSON Wire协议之上。拥有这个“基础”意味着它很容易插入许多不同的语言,都使用相同的API。
其中一个是JavaScript:
https://code.google.com/p/selenium/wiki/WebDriverJs
免责声明:JS Bindings非常新!
我不确定我理解为什么你必须在JavaScript中这样做,特别是因为我可以看到严重限制你的选择。
答案 1 :(得分:0)
我建议IBM Rational Functional Tester。它是基于java的,使其具有很强的可扩展性。这不是Javascript,所以请注意,测试是用java代码编写的。对于大多数人来说,有一个记录器:你只需点击一下即可记录你的动作。
关于使用它进行自动化测试,here's my opinions 。
这是一种商业产品。我不隶属于IBM,但我经常与RFT合作。
答案 2 :(得分:0)
您可能希望查看RIATest以获取Web应用程序的跨平台跨浏览器测试。它使用基于ECMAScript的脚本语言,与JavaScript非常相似。
适用于Windows和Mac,支持的浏览器包括Firefox,IE和Chrome。在一个平台/浏览器上编写的自动测试脚本可以针对所有其他支持的平台/浏览器运行。
当然可以自动执行您描述的步骤。动态生成的ID不好,但您应该能够使用其他属性(例如文本,元素类型等)来标识要自动化和测试的HTML对象。
(免责声明:我是RIATest团队成员)。