Loading [MathJax]/extensions/tex2jax.js

2021年11月7日日曜日

自動テストの練習6 (UWSC編⑤) とじる




やりたいこと

前回の続きになります。

UWPアプリの簡単なテスト(スモークテスト?)をUWSCでやってみるの4回目です。


5回目はとじる(×ボタン)操作を自動化してみます。


最初に設定したテストケースのTC7になります。

IDTestCaseの説明TestCaseの手順出力期待値
TC7終了×ボタンをおす終了する


ソース

ソースコードはこちらになります。

  1. // TC7 終了  
  2. CloseApp()  
  3.   
  4.   
  5. // 終了  
  6. PROCEDURE CloseApp()  
  7.   
  8.     WaitWindowText("memotter""What", 10)  
  9.       
  10.     id = GETID("memotter")  
  11.       
  12.     //①とじるボタンをクリック  
  13.     closebtn = CLKITEM(id, "memotter を閉じる")  
  14.     IF closebtn = TRUE   
  15.         PRINT "OK とじるボタン押下成功"  
  16.     ELSE  
  17.         PRINT "NG とじるボタン押下失敗"     
  18.     ENDIF  
  19.       
  20. FEND  
  21.   
  22.   
  23. // ウィンドウの中のテキストが表示されるのを待つ  
  24. FUNCTION WaitWindowText(WindowTitle, text, timeOut)  
  25.     RESULT = FALSE    
  26.   
  27.     // ウィンドウが表示されるのをtimeOutの時間まで待つ  
  28.     FOR i = 0 TO timeOut  
  29.         //ウィンドウのID取得  
  30.         id = GETID(WindowTitle)  
  31.       
  32.         staticText = GETITEM(id, ITM_STATIC)  
  33.         IF staticText <> 0  
  34.             FOR j = 0 TO staticText -1   
  35.                 n = POS(text, ALL_ITEM_LIST[j])    
  36.                 IFB n >= 1  
  37.                     // PRINT text + "が見つかった"  
  38.                     BREAK 2                       
  39.                 ELSE  
  40.                     // PRINT text + "が見つからない"  
  41.                 ENDIF                 
  42.             NEXT  
  43.         ELSE  
  44.             PRINT "static text なし"  
  45.         ENDIF  
  46.           
  47.         // 1秒待機  
  48.         SLEEP(1)   
  49.     NEXT  
  50.       
  51. FEND  
----

解説


①とじる
標準関数のCLKITEM()でとじるボタンをクリックしてます。
CLKITEM()の第2引数に設定しているとじるボタンのコントロール名は、GetItem()という関数を使って調べました。

GetItem()でウィンドウのコントロールの名前などを調べることができるので、便利です。アイテム名を調べるのに使ったソースはこちらになります。

OS標準の電卓アプリようのサンプルです。電卓の部分を変更するとほかのアプリでも使えます。

  1. GID = GETID("電卓")  
  2. GetItemAll(GID)  
  3.   
  4. PROCEDURE GetItemAll(GID)  
  5.   
  6.     PRINT "ボタン"  
  7.     NUM = GETITEM(GID,ITM_BTN)  
  8.     FOR i = 0 TO (NUM-1)  
  9.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  10.     NEXT  
  11.   
  12.     PRINT "リストボックス、コンボボックス"  
  13.     NUM = GETITEM(GID,ITM_LIST)  
  14.     FOR i = 0 TO (NUM-1)  
  15.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  16.     NEXT  
  17.   
  18.     PRINT "タブコントロール"  
  19.     NUM = GETITEM(GID,ITM_TAB)  
  20.     FOR i = 0 TO (NUM-1)  
  21.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  22.     NEXT  
  23.   
  24.     PRINT "メニュー"  
  25.     NUM = GETITEM(GID,ITM_MENU)  
  26.     FOR i = 0 TO (NUM-1)  
  27.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  28.     NEXT  
  29.   
  30.     PRINT "ツリービュー"  
  31.     NUM = GETITEM(GID,ITM_TREEVEW)  
  32.     FOR i = 0 TO (NUM-1)  
  33.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  34.     NEXT  
  35.   
  36.     PRINT "リストビュー"  
  37.     NUM = GETITEM(GID,ITM_LSTVEW)  
  38.     FOR i = 0 TO (NUM-1)  
  39.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  40.     NEXT  
  41.   
  42.     PRINT "エディットボックス"  
  43.     NUM = GETITEM(GID,ITM_EDIT)  
  44.     FOR i = 0 TO (NUM-1)  
  45.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  46.     NEXT  
  47.   
  48.     PRINT "スタティックコントロール"  
  49.     NUM = GETITEM(GID,ITM_STATIC)  
  50.     FOR i = 0 TO (NUM-1)  
  51.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  52.     NEXT  
  53.   
  54.     PRINT "ステータスバー"  
  55.     NUM = GETITEM(GID,ITM_STATUSBAR)  
  56.     FOR i = 0 TO (NUM-1)  
  57.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  58.     NEXT  
  59.   
  60.     PRINT "ツールバー"  
  61.     NUM = GETITEM(GID,ITM_TOOLBAR)  
  62.     FOR i = 0 TO (NUM-1)  
  63.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  64.     NEXT  
  65.   
  66.     PRINT "アクセシビリティ用インターフェース経由でのクリック可能なオブジェクト"  
  67.     NUM = GETITEM(GID,ITM_ACCCLK)  
  68.     FOR i = 0 TO (NUM-1)  
  69.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  70.     NEXT  
  71.   
  72.     PRINT "アクセシビリティ用インターフェース経由でのテキスト"  
  73.     NUM = GETITEM(GID,ITM_ACCTXT)  
  74.     FOR i = 0 TO (NUM-1)  
  75.         PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]  
  76.     NEXT  
  77.   
  78. FEND  

結果

アプリを閉じることができました。

これで一応やりたいことが全部できました。

スクリーンショットをとるなどもうすこしブラッシュアップしていきたいので、
0 件のコメント:
コメントを投稿