版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/gongke425281007/article/details/50969012
1.robotium在黑盒和白盒中的使用:
⑴ 黑盒測試需預先安裝完重簽名後的app,而白盒不用
⑵.白盒的測試程序初始化:
public XXX() {
super (xxx.class) ;
}
黑盒的測試程序初始化:
private static Class<?> launchActivityClass;
static {// 由於沒有源碼,只能通過反射主類名,獲取實例。
try {
launchActivityClass = Class. forName( xxx);
}
catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public XXX() {
// 構造函數,傳遞包名和類名,供測試框架進行監控其狀態,好對其進行模擬操作
super (packageName, launchActivityClass );
}
2.重簽名
重簽名可以用命令行和re-sign,如果使用的是re-sign.jar,re-sign使用的簽名默認是C:\Users\Administrator\.android\debug.keystore,且暫時沒辦法更改,如果你已改動SDK的路徑,導致原路徑下的debug.keystore缺失,re-sign仍會顯示重簽名成功,但是實際只是去掉了簽名,需手動命令行簽名。
在用命令行使用debug.keystore進行重簽名時,debug.keystore 簽名密碼爲android,默認別名應爲androiddebugkey,“找不到
xx.keystore證書鏈”爲別名錯誤,可以用keytool.exe -list -keystore debug.keystore 獲取別名。
3.robotium獲取相同id或無id的的控件
很多控件都可以通過指定控件在界面上的排列順序來定位。
通過index直接獲取是最好的辦法,但是當界面佈局發生變化時,需及時維護和更新。
通過index獲取指定控件的父控件,在通過getchildat獲取指定控件,或者先獲取子控件,再通過getparent獲取父控件,此兩類方法存在一定的問題。