我们目前正在开发Richfaces 3.0,Seam 2.2和JBOSS 6.0的交易项目。我们正在使用Selenium进行GUI测试。我只是想知道在selenium测试中是否有可能访问bean。
答案 0 :(得分:1)
不,Selenium和Seam bean是完全不同的抽象层次。 Selenium在JBoss服务器内部运行,而Selenium在Web浏览器上运行。
如果你想以某种方式从内部控制应用程序,你必须为这些可以通过Selenium测试访问的bean提供一些接口。例如,如果使用Java编写,您可能会将某些操作公开为Web服务或JMX bean,并从Selenium测试套件中访问它们。
但请注意,这不是最佳做法 - Selenium测试应仅适用于用户界面(端到端)级别。尝试仅通过用户界面设置应用程序,而不是手动访问应用程序内部。
更新:如果您有一些常见设置(如用户,产品等),请将它们作为公共部署基础结构的一部分插入数据库中。然后,您可以进行单一测试,以创建/接受用户,添加产品等,然后只需重复使用数据库中已有的普通用户。
答案 1 :(得分:0)
从技术上讲,没有什么能阻止你对你的bean进行selenium可见性并直接调用它们的方法。但是,这不是一个好的设计实践。 Selenium用于测试应用程序的行为(主要通过GUI),不应该关注bean级别。也许如果你给我们一个用例,说明为什么你可能需要这样做呢?
在过去,我通过selenium公开了Web服务和JDBC测试,作为QA人员测试应用程序某些部分的快捷方式,如果这就是您所说的,但最好通过Web服务使用它托马斯提到过。