2009-11-16 55 views
5

我不熟悉PowerBuilder,但我有一個任務來爲PB創建自動UI測試應用程序。我們決定用pywinauto和iaccesible庫在Python中完成它。問題在於一些UI元素(如新添加的列表記錄)無法從中加入(即使inspect32也無法獲得它)。 任何想法如何達到這些元素,並使他們可測試?如何製作PowerBuilder UI測試應用程序?

回答

2

我正在嘗試基於PowerBuilder的GUI自動化工具的代碼。從我所看到的,你最好的選擇是使用PowerBuilder本地接口(PBNI),並從NVO內調用PowerScript代碼。

如果您願意,隨時給我發一封電子郵件(請查看我的個人資料以查找我的電子郵件地址),我很樂意交流有關如何操作的想法。

1

我沒有使用PowerBuilder一段時間,但我想你正試圖解決的問題與我正在嘗試解決人們使用Wonderware Intouch等SCADA系統製作項目的問題類似。

這樣的應用程序的問題是,沒有API來獲取或設置控件的值。所以pywinauto方法無法工作。

我做了一個小工具來模擬用戶事件並從screencapture中獲取結果。我很喜歡PIL和pytesser ORM來分析屏幕截圖。這不是最簡單的方法,但它工作正常。

該工具是開源的和免費的,可以從my website(對不起,法語)下載。你只需要一個帳戶,但它也是免費的。請問。

如果你可以閱讀法語,這裏是one article about testing Intouch-based applications

對不起,自我宣傳,但我面臨着類似的問題沒有解決,所以我已經寫了我自己。無論如何,這是免費的,開放源代碼...

+1

嗨。我們的Python應用程序工作得很好,除了一些興奮點。我們不直接設置控制值,而是對系統說:例如:「進入休耕位置x,y鍵入一些文本,然後單擊輸入」我們使用pywinauto和iaccesible來查找控件並獲得posiotion,值等。但是,問題是pywinauto有一些iaccesible無法找到的元素。 – 2009-11-16 11:26:14

1

如果您正在測試數據窗口(該類是pbdwxxx,例如pbdw110),您將不得不使用點擊特定座標和發送Tab鍵來控制你要。當然,你也可以發送上下箭頭鍵在行間移動。最簡單的做法是從一個像SLE這樣的普通控件開始,並將選項卡放入DataWindow中。問題是DataWindow本質上只是一個圖像。除非通過單擊或切換移動焦點,否則無法控制給定字段。我還發現DataWindow的iAccessible接口有點奇怪。如果您向DataWindow詢問具有焦點的對象,則無法得到正確的答案。如果你列舉了所有的孩子,你可以找到有關注的孩子。如果你可以修改源代碼,我還建議你爲你的DataWindow控件設置AccessibleName,否則你可能無法識別控件,除了按位置(通過DataWindow控件我指的是DataWindow中的控件,而不是DataWindow本身) 。如果它是一個MDI應用程序,您也可能發現找到MicroHelp窗口(類fnhelpxxx,例如fnhelp110,從主應用程序窗口查找)以幫助確定當前上下文很有用。

編輯添加: Sikuli看起來非常有希望測試PowerBuilder。它通過從屏幕截圖保存的片段中識別屏幕上的對象來工作。也就是說,你截取了你想要查找的屏幕部分。

1

我在AutomatedQa支持中看到他們推薦使用msaa並在控件上設置一些屬性。我不知道它是否有效。

+0

使用MSAA協助測試的侷限性在於,PowerBuilder僅提供開發人員明確提供的MSAA信息,但有一些例外情況。請注意,我在這裏講到了經典的PB,我沒有在WinForms中探索過。我已經將MSAA支持添加到了我們中級的許多PFC控件中。 – 2010-02-25 16:24:01