兼容性测试方法及Android自动化兼容性测试

作者:android自动化兼容性测试   发布时间:2022-03-09

android兼容性测试内容

为什么要做android的兼容性测试

兼容性测试方法

自动化进行兼容性测试

做Android兼容性测试的目的何在

兼容性测试主要是指测试Android应用的功能,在市面上所有的Android设备上能否正常运行。大家都知道,现在市面上的Android设备已经有几千款,碎片化非常严重。特别在中国地区,各大手机厂商对手机系统的深度订制,以及硬件的不同,特性代码中操作机器的硬件部分,由于机器的多样性,差异性,一旦代码对某类接口有所遗漏或者使用不当,就会出现各种异常。所以安卓应用上线前都会做兼容性测试。

兼容性测试有哪几种方法

兼容性测试主要有手动测试、 自动化测试和云平台测试三种方式:

手动测试就是在多机型上手工操作进行的测试。

自动化测试主要是利用私有设备云对被测应用的安装卸载,稳定性,功能等的测试。

云平台是利用现有的公有设备云服务器平台,通过上传应用,选择云平台上提供相关服务进行的测试。

自动化智能进行兼容性测试

我们常用的手工测试流程就是通过在Android设备上安装被测应用-->启动被测应用-->卸载被测应用,来检验如下两个方面。

安装包的安装兼容性

稳定性


常用的方式是通过adb 命令启动进行安装和卸载。例如安装包为test.apk 包名为com.sample.app,启动Activity为MainActivity。

#安装 adb install test.apk #启动 adb shell am start -n com.sample.app/.MainActivity #卸载 adb uninstall com.sample.app #覆盖安装 adb install -r test.apk


通过上述命令可以进行app的安装,启动,卸载。


借助CukeTest工具(http://cuketest.com)进行脚本开发。

环境搭建

配置sdk (自行网上查阅资料本机安装sdk)

安装node.js库 adbkit


打开CukeTest,文件新建-新建项目;项目类型选择基本项目,填写项目信息,完成创建即可。

在项目的根目录下执行 npm install adbkit --save  完成abdkit 库的安装。


更改默认feature文件 填写如下内容到 features/feature1.feature

# language: zh-CN 功能: 客户端兼容性测试 Android手机客户端不同设备安装卸载  场景: 获取设备信息    假如获取可用设备信息    同时安装apk应用    并且启动mainactivity     


设置默认超时时间 features/support/env.js

const { setDefaultTimeout } = require('cucumber') // 设置默认超时时间为60秒 setDefaultTimeout(60 * 1000);


编辑脚本内容 features/step_definitions/defination1.js

const { Given, When, Then } = require('cucumber'); const path = require('path'); var adb = require('adbkit'); var client = adb.createClient(); var devices = []; Given(/^获取可用设备信息$/, async function () {    devices = await client.listDevices();    console.log("devices:", devices) }); When(/^安装apk应用$/, async function () {    let apkpath = path.join(__dirname, '../../apks/app-release.apk');    for (let device of devices) {        try {            await client.install(device.id, apkpath)            console.log("install ", apkpath, "to device", device.id);        } catch (e) {            console.log(device.id, "cant install the apk;")        }    } }); Given(/^启动mainactivity$/, async function () {    options = {        wait: true,        component: "com.reactapp/.MainActivity"    }    for (let device of devices) {        try {            //启动activity            await client.startActivity(device.id, options)        } catch (e) {            console.log(device.id, "cant start the activity")        }    } }); When(/^启动完成后卸载应用$/, async function () {    let pk = 'com.reactapp'    for (let device of devices) {        await client.uninstall(device.id, pk)    } });





推荐:

兼容性测试方案

众测测试方案

测试用例设计解决方案

接口测试解决方案

界面自动化测试解决方案

移动端自动化测试解决方案

性能测试解决方案

需求管理解决方案

代码管理解决方案

预决算管理解决方案

第三方验收测试解决方案

安全测试解决方案


本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2022 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.