2021年11月7日日曜日

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




やりたいこと

前回の続きになります。

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


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


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

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


ソース

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

// TC7 終了
CloseApp()


// 終了
PROCEDURE CloseApp()

	WaitWindowText("memotter", "What", 10)
	
	id = GETID("memotter")
	
	//①とじるボタンをクリック
	closebtn = CLKITEM(id, "memotter を閉じる")
	IF closebtn = TRUE 
		PRINT "OK とじるボタン押下成功"
	ELSE
		PRINT "NG とじるボタン押下失敗"	
	ENDIF
	
FEND


// ウィンドウの中のテキストが表示されるのを待つ
FUNCTION WaitWindowText(WindowTitle, text, timeOut)
	RESULT = FALSE	

	// ウィンドウが表示されるのをtimeOutの時間まで待つ
	FOR i = 0 TO timeOut
		//ウィンドウのID取得
		id = GETID(WindowTitle)
	
		staticText = GETITEM(id, ITM_STATIC)
		IF staticText <> 0
			FOR j = 0 TO staticText -1 
				n = POS(text, ALL_ITEM_LIST[j])  
				IFB n >= 1
					// PRINT text + "が見つかった"
					BREAK 2						
				ELSE
					// PRINT text + "が見つからない"
				ENDIF				
			NEXT
		ELSE
			PRINT "static text なし"
		ENDIF
		
		// 1秒待機
		SLEEP(1) 
	NEXT
	
FEND
----

解説


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

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

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

GID = GETID("電卓")
GetItemAll(GID)

PROCEDURE GetItemAll(GID)

	PRINT "ボタン"
	NUM = GETITEM(GID,ITM_BTN)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "リストボックス、コンボボックス"
	NUM = GETITEM(GID,ITM_LIST)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "タブコントロール"
	NUM = GETITEM(GID,ITM_TAB)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "メニュー"
	NUM = GETITEM(GID,ITM_MENU)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "ツリービュー"
	NUM = GETITEM(GID,ITM_TREEVEW)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "リストビュー"
	NUM = GETITEM(GID,ITM_LSTVEW)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "エディットボックス"
	NUM = GETITEM(GID,ITM_EDIT)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "スタティックコントロール"
	NUM = GETITEM(GID,ITM_STATIC)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "ステータスバー"
	NUM = GETITEM(GID,ITM_STATUSBAR)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "ツールバー"
	NUM = GETITEM(GID,ITM_TOOLBAR)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "アクセシビリティ用インターフェース経由でのクリック可能なオブジェクト"
	NUM = GETITEM(GID,ITM_ACCCLK)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

	PRINT "アクセシビリティ用インターフェース経由でのテキスト"
	NUM = GETITEM(GID,ITM_ACCTXT)
	FOR i = 0 TO (NUM-1)
		PRINT (i+1) + "番目:<#TAB>" + ALL_ITEM_LIST[i]
	NEXT

FEND


結果

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

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

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