我們目前正在開發一個使用Richfaces 3.0,Seam 2.2和JBOSS 6.0的交易項目。我們正在使用Selenium進行GUI測試。我只想知道在硒測試中是否有任何可能性訪問bean。是否可以在硒測試中訪問java bean?
回答
不,Selenium和Seam豆是完全不同的抽象層次。 Seam Bean在JBoss服務器內部運行,而Selenium在Web瀏覽器上運行。
如果您想以某種方式從內部控制應用程序,則必須爲可通過Selenium測試訪問的這些bean提供一些界面。例如,您可能會將某些操作公開爲Web服務或JMX bean,並且如果使用Java編寫,則可以從Selenium測試套件中訪問它們。
但請注意,這不是最佳實踐 - 硒測試只應在用戶界面(端到端)級別上工作。嘗試僅通過用戶界面設置應用程序,而不是手動訪問應用程序內部。
更新:如果您有一些常見設置(如用戶,產品等),請將它們作爲常用部署基礎結構的一部分插入到數據庫中。然後,您可以進行單個測試,以創建/接受用戶,添加產品等,然後簡單地重用數據庫中已有的普通用戶。
沒有什麼技術上阻止您將硒的可見性傳遞給您的bean,並直接調用它們的方法。但是,這不是一個好的設計實踐。 Selenium用於測試應用程序的行爲(主要通過GUI),而不應該關注bean級別。也許如果你給我們一個你爲什麼需要這樣做的用例,這可能是有道理的?
在過去,我已經通過selenium公開了Web服務和JDBC測試,作爲QA人員測試應用程序某些部分的快捷方式,如果這就是您正在討論的內容,但最好通過Web服務使用它正如Tomasz所說。
感謝您的回覆。這個用例讓我們思考如果我的問題能夠感覺到:我們有一個貿易應用程序。公司向我們註冊。而一位管理員用戶確認他們。在確認用戶可以登錄後,用戶可以執行我們的應用程序。對於每個關於確認用戶的測試案例,用戶需要先登錄,這會增加我們的測試時間。 (每次測試的登錄時間在10-20秒之間)這讓我們想到也許我們可以像Seam測試一樣跳過這一步。 –
冒着顯而易見的風險:爲什麼您需要在每個測試用例的開頭先登錄?以一種登錄方式重構測試是不可能的?另外一種策略是在測試環境中「模擬」登錄操作(在後端使用假控制器或類似的東西),這將會更快地返回。 –
即時糾正「每個測試」的事情。不是每個測試。只是爲了確認用戶操作測試。我們已經寫了西裝,但在西裝測試? –
- 1. 是否可以從Jruby訪問Spring bean
- 2. 是否可以在jsf中訪問一個bean變量?
- 3. 測試Java Bean是否具有PropertyChangeSupport
- 4. SOA是否可以是Java Bean?
- 5. 是否可以從純Java訪問BDB?
- 6. 硒,java,測試
- 7. Angularjs E2E方案測試是否可以訪問GET參數?
- 8. Android:測試設備是否可以訪問互聯網
- 9. 在Linux中測試內存是否可訪問
- 10. 是否可以在MonoTouch中訪問NSURLCache?
- 11. 是否可以運行加特林和硒測試
- 12. 硒如何測試它是否可以讀取文件
- 13. 我可以使用AJAX +跨域+ jsonp測試URL是否可以訪問嗎?
- 14. 如何檢測剪貼板是否可以在Firefox中訪問?
- 15. 測試路徑可以訪問或不在java
- 16. 在Java的硒測試
- 17. 是否可以在Excel中使用輸入數據運行硒測試?
- 18. 你可以測試mixin是否存在?
- 19. NUnit - 是否可以在TearDown中檢查測試是否成功?
- 20. Java EE 6中的@Remote是否可以訪問私有方法?
- 21. 是否可以在Android Studio中運行/調試測試?
- 22. 是否可以在Ruby on Rails中調試單元測試?
- 23. 在Java單元測試中,是否可以在循環中包含assert語句?
- 24. 在grails單元測試中訪問resources.xml/appContext.xml定義的bean
- 25. 用於測試URL是否可訪問的JQuery
- 26. Java bean測試框架
- 27. 是否可以使用組內測試
- 28. 是否可以重置JUnit測試?
- 29. iOS可訪問性測試
- 30. 在iOS10中,是否可以從靜態庫/框架中訪問Keychain,以進行單元測試
OP並沒有詢問Spring bean,我想他是在談論POJO。 –
阿什坎雅利安的前提仍然是正確的。硒是關於瀏覽器UI測試的,不應該直接與服務器(及其bean)進行交互。 –
@James DW是的,這是正確的,我在我的答案中指出了相同的內容(見下文),只是指出Spring並不在這裏。 –