Android第三方檢測匹层,讓bug暴露出來
目前網絡上有很多不同的app檢測平臺隙笆,這里我選出3個平臺來講一下。
優(yōu)測
這個平臺擁有應用測試升筏、云真機撑柔、漏洞分析等功能,其中應用測試里面包括自動化測試和深度服務您访。
- 自動化測試
- 版本上線前測試铅忿、版本見VP前測試、重大技術變更前Demo測試灵汪,幾十分鐘幫你覆蓋上千款真實手機檀训,可以發(fā)現[安裝失敗]、[啟動失敗]享言、[運行時閃退](啟動后短時間內崩潰或ANR)等兼容性問題峻凫,避免應用閃退尷尬。
- 使用
- 選擇測試方案(其實沒得選览露,只有一個默認的)
兼容性測試荧琼,在你選定的設備群中,抽取一臺進行測試差牛,消滅閃退命锄,點擊下一步 - 測試配置
上傳apk,設置應用登錄配置偏化,點擊下一步 - 選擇測試設備
選擇需要測試的設備群脐恩,點擊下一步 - 支付訂單
進行立即支付 - 完成
- 深度服務
- 提供apk適配分析和漏洞安全檢測,兼容和漏洞問題的檢測侦讨。
- 使用
- 套餐選擇
- 上傳測試包
- 上傳測試腳本
上傳的是Xtest工具輸出的腳本被盈,Xtest腳本工具說明文檔 - 提交測試
- 支付訂單
- 云真機
- APK在線安裝,適配問題遠程再現,Logcat實時輸出,運行現場實時截圖
- 使用
- 選擇自己需要測試的機型
- 安裝需要測試的應用
上傳應用 - 開啟Log
只用開啟了log析孽,才能在運行的時候跟蹤到日志 - 截屏
點擊截屏按鈕進行截屏 - 性能數據查看
可查看CPU使用率、內存使用情況只怎、流量統(tǒng)計
- 漏洞分析
- 安全漏洞掃描,詳細的解決方案怜俐,權限列表匯總身堡,測試完成通知
- 使用
- 上傳項目包進行測試
- 提交掃描
愛內測
具有漏洞檢測、兼容性檢測拍鲤、找bug贴谎、網絡監(jiān)控、插件評估功能季稳。
- 漏洞檢測
- 100多項檢測擅这,提供專業(yè)報告和修復建議
- 使用
- 漏洞檢測
- 馬上檢測
- 選擇功能
- 上傳.apk文件
- 獲取頁面檢測報告
- 兼容檢測
- 安裝測試、遍歷測試景鼠、穩(wěn)定測試仲翎、定制測試
- 使用
- 兼容檢測
- 馬上檢測
- 選擇功能
- 上傳.apk文件
- 獲取頁面檢測報告
- 插件評估
- 對插件評估,使用更安全
- 使用
- 插件評估
- 馬上檢測
- 選擇功能
- 上傳.apk文件
- 獲取頁面檢測報告
Testin企業(yè)版
企業(yè)一站式APP測試管理平臺铛漓,項目管理溯香,自動上報,追蹤bug浓恶,團隊協(xié)作玫坛,成員管理,缺陷管理包晰。
使用:
- 點擊下載sdk
- 安裝sdk
* Eclipse
下載SDK 并解壓縮
將 SDK 工程導入 Eclipse湿镀,點擊 File,選擇 Import
選擇導入已存在的 Android 工程伐憾,點擊 Next
選擇剛才解壓縮后的工程目錄勉痴,點擊 Finish
在APP工程目錄點擊右鍵,選擇 Properties
在屬性窗口中塞耕,右側選擇 Android蚀腿,然后點擊 Add 添加 Library 引用
選擇前面導入的 SDK 工程,作為 APP 工程的 library扫外,然后點擊確定
點擊 OK莉钙,完成APP工程對SDK工程的引用
修改APP工程的 project.properties 文件,添加 manifestmerger.enabled=true
* Android Studio
下載SDK 并解壓縮
將 SDK 工程導入 Android Studio筛谚,點擊 File磁玉,選擇 New,選擇 Import Module
選 SDK 的文件夾驾讲,點擊 Next蚊伞、Finish
右擊當前工程席赂,選擇 Open Module Settings
選擇 Dependencies,點擊 “+”时迫,選擇 Module dependency
選擇要嵌入的 SDK颅停,點擊 OK
確認 SDK 已經添加進來,點擊 OK
- 配置Mainifest
在Manifest中添加以下權限
INTERNET 允許應用使用網絡上報數據
ACCESS_NETWORK_STATE 允許獲取網絡狀態(tài)
ACCESS_WIFI_STATE 獲取網卡信息
READ_PHONE_STATE 讀取設備ID作為設備標識
READ_LOGS 獲取系統(tǒng)日志
GET_TASKS 獲取任務堆棧
```java
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="3" android:versionName="1.0" package="com.testin.demo">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".DemoApp">
<activity android:label="@string/app_name" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<meta-data android:name="PROJECT_KEY" android:value="ae21b21ab583b68fccaa6a7a62813e61"/>
<meta-data android:name="CHANNEL" android:value="Channel_ID"/>
</application>
</manifest>
如果想獲得更豐富的位置相關服務掠拳,請在manifest文件中添加權限:
java
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
```
- 初始化SDK
在你的 Activity 基類(或所有的 Activity)中癞揉,添加
Import com.testin.agent.Bugout;
在Activity的onCreate()方法中,添加
/**
*Chanel ID:應用所發(fā)布的渠道名稱溺欧,自定義字符串喊熟,如> 應用寶可以寫yingyongbao, 也可以為空
*/
Bugout.init(this,"ae21b21ab583b68fccaa6a7a62813e61","your channel ID");
初始化方法默認不開啟搖一搖功能,需要通過以下方式配置:
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BugoutConfig config = new BugoutConfig.Builder(context)
.withAppKey(ae21b21ab583b68fccaa6a7a62813e61) // 您的應用的項目 Key,如果已經在 Manifest 中配置則此處可略
.withAppChannel(cnl) // 發(fā)布應用的渠道,如果已經在 Manifest 中配置則此處可略
.withUserInfo(userinfo) // 用戶信息-崩潰分析根據用戶記錄崩潰信息
.withDebugModel(true) // 輸出更多SDK的debug信息
.withErrorActivity(true) // 發(fā)生崩潰時采集Activity信息
.withCollectNDKCrash(true) // 收集NDK崩潰信息
.withOpenCrash(true) // 收集崩潰信息開關
.withOpenEx(true) // 是否收集異常信息
.withReportOnlyWifi(true) // 僅在 WiFi 下上報崩潰信息
.withReportOnBack(true) // 當APP在后臺運行時,是否采集信息
.withQAMaster(true) // 是否收集搖一搖反饋
.withCloseOption(false) // 是否在搖一搖菜單展示‘關閉搖一搖選項’
.withLogcat(true) // 是否系統(tǒng)操作信息
.build();
Bugout.init(config);
}
其他可用的功能與接口:
查詢搖一搖開啟狀態(tài)getShakeStatus()姐刁,調用返回搖一搖開啟狀態(tài)芥牌,false=關閉,true=開啟
/*
** Get shake status if open qamaster function
** @param ctx
*/
public static boolean getShakeStatus(Context ctx)
設置搖一搖開啟狀態(tài)setShakeStatus()聂使,此接口實現應與應用本身**功能聯(lián)動
例如壁拉,在app的應用設置中增加“開啟/關閉搖一搖反饋”
關閉時setShakeStatus(ctx,false)
開啟時setShakeStatus(ctx,true)
/**
* Set shake status if open qamaster function
* @param ctx
* @param enable
*/
public static void setShakeStatus(Context ctx, boolean enable)
注意:在集成SDK時,默認的初始化語句 Bugout.init(this,"ae21b21ab583b68fccaa6a7a62813e61","your channel ID") 不會開啟搖一搖功能岩遗,需要按照上述方式設置 QAMaster=true 扇商,才可打開搖一搖功能
用戶操作步驟:
在你的 Activity 基類(或所有的 Activity)中添加3個回調
package your.package.name;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
Import com.testin.agent.Bugout;
public class BaseActivity extends Activity{
@Override
protected void onResume() {
super.onResume();
//注:回調 1
Bugout.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
//注:回調 2
Bugout.onPause(this);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
//注:回調 3
Bugout.onDispatchTouchEvent(this, event);
return super.dispatchTouchEvent(event);
}
}
用戶數據
可設置一些用于調試的 key value 數據,隨著問題一起上報
Bugout.addExtraInfo("key", "value");
總結
- 相同:
優(yōu)測和愛內測只要上傳apk就可對apk進行bug檢測 - 不同:
優(yōu)測大多數都是要收費的宿礁,愛內測和Testin免費的
優(yōu)測上傳apk案铺,就能檢測bug,它還能捕獲不用機型上出現的崩潰梆靖,性能數據等數據
愛內測也是上傳apk控汉,流程簡單,還可以對第三番插件進行評估返吻,讓使用更加安全
Testin就是免費的姑子,和友盟檢測差不多,出現的崩潰可以手動傳輸到平臺上测僵,讓開發(fā)者方便查看街佑。