Loading [MathJax]/extensions/tex2jax.js

2021年10月31日日曜日

自動テストの練習4 (UWSC編③) ボタン押す



やりたいこと

前回の続きになります。

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


ボタンを押す

こちらのUpdateのボタンを押すというテストになります。




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

IDTestCaseの説明TestCaseの手順出力期待値
TC3Updateボタン「あいうえお」を入力する
updateボタンを押す
「あいうえお」が入力される
TC4OpenボタンOpenボタンおすエディタが起動する


ソース

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

長くなるので、ボタンを押すところだけを切り出したコードになってます。


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

解説

①ボタンを押すCLKITEM() という標準関数を使用しております。
以下の引数を指定すると、コントトールをクリックしてくれる関数です。 
第1引数 : WindowのID 
第2引数 : コントトールの名称
(オプションで、コントロールの種別, チェックボックスON,OFF, コントロールの番号)も指定可能ですが、今回は第2引数までしか使ってません。 

ボタンを押す以外は前回も使用した関数を使ってます。 

WaitWindowText()でウィンドウの特定のテキストが表示されるのを待ってます。
その後GetID()でウィンドウのIDを取得して、
SENDSTR()で文字を入力して、
最後にCLKITEM()でボタンを押してます。

Openというボタンもアプリにはあるのですが、その処理はほぼ同じなので、
ここでは説明を省略しました。

 

結果



今回は特に苦労せず進められました。







0 件のコメント:
コメントを投稿