jacoco-精準測試
不依賴原始碼執行
介面測試也能直**出覆蓋度
知道什麼樣的用例保證哪塊的**,更好的精準度測試
1.實現jacoco instrumentation操作(後面通過命令直接啟動該instrument,最下面有),注意最後啟動了 instrumentedactivity
public2.在instrumentedactivity ondestroy設定監聽,當觸發的時候觸發生成jacoco覆蓋率檔案class jacocoinstrumentation extends
instrumentation
@override
public
void
oncreate(bundle arguments)
catch
(ioexception e)
}if (arguments != null
) mintent = new intent(gettargetcontext(), instrumentedactivity.class
); mintent.setflags(intent.flag_activity_new_task);
start();
}
許可權
instrumentedactivity extends3.觸發監聽的操作mainactivity
@override
public
void
ondestroy() }}
private啟動:2.1註冊instrumentation,通過instrumentation啟動被測應用void
generatecoveragereport()
catch
(exception e)
finally
catch
(ioexception e) }}
}
adb shell am instrument com.jacs.zhaotang.jscscs/test.jacocoinstrumentation
android:handleprofiling="true"android:label="coverageinstrumentation"android:name="test.jacocoinstrumentation"android:targetpackage="com.jacs.zhaotang.jscscs"/>3.把生成的jacoco覆蓋率檔案放在指定資料夾,用gradle生成htmlreport
執行gradlew jacocotestreport
通過廣播驅動生成ec:
1.註冊廣播
publicvoid
onreceive(context context, intent intent)
else
}
傳送廣播:adb shell am broadcast -a com.jacs.zhaotang.jscscs.operationreceiver --es url 'sdsd'
解析xml:
需要提取的覆蓋率型別
publicstatic
final string instruction="instruction";
public
static
final string branch="branch";
public
static
final string line="line";
public
static
final string complexity="complexity";
public
static
final string method="method";
public
static
final string coveres=;
//獲取a和b兩次**的覆蓋率獲取當前節點的所有屬性節點
listlist =node.attributes();
//遍歷屬性節點
for(attribute attr : list)
if (attr.getname().equals("covered") &&is) }}
method - unregisterobserver --- instruction-covered ----- 14method - getlastlocation --- instruction-covered ----- 18method - setcachedlocation --- instruction-covered ----- 0method - getcachedlocation --- instruction-covered ----- 11method - setcachedlocationtime --- instruction-covered ----- 0method - getcachelocationtime --- instruction-covered ----- 11method - hascachedlocation --- instruction-covered ----- 10method - --- instruction-covered ----- 6method - onreceive --- instruction-covered ----- 10spent 785 //消耗時間列印a/b兩次的不同覆蓋值
精準測試與開源工具Jacoco的覆蓋率能力大PK
覆蓋率技術可以說是測試理論中最基本的技術體系,但由於傳統覆蓋率並沒有很好的適應新型軟體開發模型,導致應用場景越來越窄。比如 jacoco等同類工具,仍停留在傳統白盒覆蓋技術的技術演化層面,目前基本僅適用在瀑布模式的開發體系下。最新的測試黑馬技術 精準測試 覆蓋率功能是企業級 面向敏捷迭代場景 全新的...
安卓移動應用開發考題 移動應用開發安卓選題
移動應用開發課程大作業選題 注意 以下所有系統均要實現 1 管理者的登陸 2 使用者的註冊和登陸 3 資料的儲存和提取 第 題可以不要求 1 管理者的登陸 和 2 使用者的註冊和登 陸 不要附上核心 全文漢字字數不少於 每個班內不能有重複選題,班級內部每 人組成一組選題。學生提交大作業設計報告列印稿...
測試人生 安卓FPS測試詳解
安卓的fps測試,是我開啟測試開發大門的一把鑰匙。兩年前的現在,安卓效能測試的相關資料甚少,以fps為例在網上也只有寥寥幾篇文章講述,但到了今年,已經有許多資料在各大技術論壇上供大家看到了。對於自己,一直想找乙個機會把這一段技術探索寫出來。所以,心動不如行動。fps frames per secon...