我不熟悉PowerBuilder,但我有一個任務來爲PB創建自動UI測試應用程序。我們決定用pywinauto和iaccesible庫在Python中完成它。問題在於一些UI元素(如新添加的列表記錄)無法從中加入(即使inspect32也無法獲得它)。 任何想法如何達到這些元素,並使他們可測試?如何製作PowerBuilder UI測試應用程序?
回答
我正在嘗試基於PowerBuilder的GUI自動化工具的代碼。從我所看到的,你最好的選擇是使用PowerBuilder本地接口(PBNI),並從NVO內調用PowerScript代碼。
如果您願意,隨時給我發一封電子郵件(請查看我的個人資料以查找我的電子郵件地址),我很樂意交流有關如何操作的想法。
我沒有使用PowerBuilder一段時間,但我想你正試圖解決的問題與我正在嘗試解決人們使用Wonderware Intouch等SCADA系統製作項目的問題類似。
這樣的應用程序的問題是,沒有API來獲取或設置控件的值。所以pywinauto方法無法工作。
我做了一個小工具來模擬用戶事件並從screencapture中獲取結果。我很喜歡PIL和pytesser ORM來分析屏幕截圖。這不是最簡單的方法,但它工作正常。
該工具是開源的和免費的,可以從my website(對不起,法語)下載。你只需要一個帳戶,但它也是免費的。請問。
如果你可以閱讀法語,這裏是one article about testing Intouch-based applications
對不起,自我宣傳,但我面臨着類似的問題沒有解決,所以我已經寫了我自己。無論如何,這是免費的,開放源代碼...
如果您正在測試數據窗口(該類是pbdwxxx,例如pbdw110),您將不得不使用點擊特定座標和發送Tab鍵來控制你要。當然,你也可以發送上下箭頭鍵在行間移動。最簡單的做法是從一個像SLE這樣的普通控件開始,並將選項卡放入DataWindow中。問題是DataWindow本質上只是一個圖像。除非通過單擊或切換移動焦點,否則無法控制給定字段。我還發現DataWindow的iAccessible接口有點奇怪。如果您向DataWindow詢問具有焦點的對象,則無法得到正確的答案。如果你列舉了所有的孩子,你可以找到有關注的孩子。如果你可以修改源代碼,我還建議你爲你的DataWindow控件設置AccessibleName,否則你可能無法識別控件,除了按位置(通過DataWindow控件我指的是DataWindow中的控件,而不是DataWindow本身) 。如果它是一個MDI應用程序,您也可能發現找到MicroHelp窗口(類fnhelpxxx,例如fnhelp110,從主應用程序窗口查找)以幫助確定當前上下文很有用。
編輯添加: Sikuli看起來非常有希望測試PowerBuilder。它通過從屏幕截圖保存的片段中識別屏幕上的對象來工作。也就是說,你截取了你想要查找的屏幕部分。
我在AutomatedQa支持中看到他們推薦使用msaa並在控件上設置一些屬性。我不知道它是否有效。
使用MSAA協助測試的侷限性在於,PowerBuilder僅提供開發人員明確提供的MSAA信息,但有一些例外情況。請注意,我在這裏講到了經典的PB,我沒有在WinForms中探索過。我已經將MSAA支持添加到了我們中級的許多PFC控件中。 – 2010-02-25 16:24:01
- 1. PowerBuilder應用程序 - 調試
- 2. 任何可以測試PowerBuilder應用程序和Web應用程序的測試工具?
- 3. 如何使用JUNIT測試UI應用程序android並截屏
- 4. 如何使用Monkey測試Android應用程序的UI
- 5. 如何調試Nativescript應用程序UI?
- 6. 從Web UI測試切換到Windows Forms應用程序測試
- 7. IOS UI測試:如何確定被測試的應用程序是否切換到設置應用程序?
- 8. 如何嘲笑MVC4應用程序時與華廷UI測試?
- 9. Xcode UI測試:如何測試應用程序的第一次啓動
- 10. 運行PowerBuilder應用程序
- 11. 協作Web應用程序的端到端UI測試?
- 12. 如何用Cocoa UI製作Java應用程序?
- 13. 測試子應用程序控制器
- 14. 如何測試Facebook應用程序?
- 15. 如何測試Silverlight應用程序?
- 16. 我如何測試Flash應用程序?
- 17. 如何測試NFC應用程序?
- 18. 如何測試WP7應用程序?
- 19. 如何測試Vista的應用程序
- 20. 如何測試RESTful應用程序?
- 21. AngularJS 2.0 - 如何測試應用程序?
- 22. 團隊應用程序如何測試?
- 23. 如何測試應用程序
- 24. 如何測試android應用程序?
- 25. 我如何測試Flash應用程序?
- 26. 如何測試應用程序?
- 27. 如何測試Android應用程序?
- 28. 如何重構測試應用程序?
- 29. 如何測試QuickFIXJ應用程序
- 30. 如何測試Silverlight應用程序
嗨。我們的Python應用程序工作得很好,除了一些興奮點。我們不直接設置控制值,而是對系統說:例如:「進入休耕位置x,y鍵入一些文本,然後單擊輸入」我們使用pywinauto和iaccesible來查找控件並獲得posiotion,值等。但是,問題是pywinauto有一些iaccesible無法找到的元素。 – 2009-11-16 11:26:14