自動化測試中java多線程的使用實例

本人在學習android UiAutomator和selenium2java的時候,常常與遇到一些跟數據庫相關的問題,好比我提交了一個訂單,我想從數據庫中查詢這個訂單的信息是否跟預期一致,或者我已經購買過一個課程,我須要從數據庫中刪除這條記錄,方便我再去購買。若是對於一條用例來講執行一下sql語句就行了,可是若是對於執行不少用例的話,就不符合自動化的初衷了。因此本人在學習了java多線程以後,進行了一些實踐。分享出來,供你們參考。java

這個是我寫的ThreadTest類的代碼。很簡單,暫時只實現了一個key控制一個功能,可是思路差很少,再改改就能實現多功能,針對每一個須要操做數據庫的用例都寫一個key控制的if-else循環。android

public class ThreadTest extends Thread{
	boolean key = true;
	boolean key1 = false;
	public void run() {
		while(key){
		if (key1) {
			try {
				MySql.UpdateLectureById(123456);
				key = false;
				} catch (ClassNotFoundException | SQLException e) {
					e.printStackTrace();
					}
			}
		}
		}
	public void setKey1(boolean key) {
		this.key1=key;
	}
	public void setKey(boolean key) {
		this.key=key;
	}

下面是我在用例中添加的一些setkey方法,selenium2java裏面能夠直接用,android UiAutomator使用起來稍微麻煩一些。git

//學習角發帖
	public void testLearnCornerAddQuestion() throws UiObjectNotFoundException, InterruptedException, IOException {
		begin();
		login();
		waitForTextAndClick("聊天");
		waitForTextAndClick("學習角");
		postNewCard();//發帖
		ThreadTest one = new ThreadTest();
		one.setKey1(false);
		over();
		}

下面是結束進程的方法,selenium2java使用也比較簡單,android UiAutomator我使用UiAutomatorHelper調試來獲取報告的,因此添在調試代碼後面了。sql

public static void main(String[] args){
		new ThreadTest().start();
		new UiAutomatorHelper("Demo", "student.Test", "testTest", "1");
		new ThreadTest().setKey(false);
	}

若是具體使用的時候,還需根據狀況加入join()方法,防止異常發生。數據庫

一塊兒來~FunTesterapi

相關文章
相關標籤/搜索