一、什么是app测试?什么是app自动化测试?
概念:所谓app测试也称之为移动测试,通俗易懂的理解就是测试我们平时手机使用的程序。那什么是app自动化测试呢?通常情况下是随app产品不断迭代更新,给测试⼈员也增加了测试⼯作量,特别是⼤量繁琐的回归测试。⾃动化测试是应对产品不断迭代更新的辅助测试⼿段(主要是针对回归测试),最终⽬的是为了保证产品质量。简而言之就是自动化的有点就是可重复、效率高,增加软件信任度。
▶ 300G软件测试自学教程 [全套完整版]分享一波学习资料:测试猿课堂为大家准备了一份总量达300G左右的【软件测试全套自学教程】
包含完整的课件+PPT+实战项目源码+千套测试模板,内容极其珍贵,千万不要错过:
▶ 获取资料包暗号:【ceshi169】
二、app测试的主要内容有那些
1、功能测试 : 查看功能是否正常,主要针对每一个功能点进行一一测试,主要核心就是把验证的每个测试点都满足需求的对应功能,验证标准就是让预期结果和实际结果保持一致。2、安装卸载测试:首先要测试的点必须是软件可以正常的安装和卸载,并且保证最基本系统的正常运行。
3、升级测试:测试点是软件的状态,就是更新迭代升级前后的区别和变化,确保旧版本功能正常实现,新功能不会出问题。
4、兼容性测试:测试点:屏幕尺寸,以及系统适配等问题。主要对目前市场上比较流行的设备进行安装软件进行测试,保证可以正常的使用具体测试点如下:
Android系统版本 厂商二次开发版本 不同的分辨率 不同的网络 网络切换、中断测试 使用中来电话、短信 横竖屏切换 健壮性:电池耗电量、流量消耗情况、崩溃恢复等等三、App测试如何搭建环境
1、首先我们需要安装环境java sdk的环境:版本jdk1.62以上,2、配置 JAVA_HOME 和 PATH
右击“我的电脑”–>然后找到"属性"–>点击"高级系统设置"–>选择"高级"–>点击"环境变量"
在系统变量里新建"JAVA_HOME"变量,变量值为:D:\Pro\jdk1.8.0_60(具体根据jdk的安装路径配置)
在系统变量里新建一个"classpath"变量,变量值为:
:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (需要重点注意变量值前面有一个.需要加到变量值里面去)然后找到path变量(如果已经存在了这个变量值,那就不需要去新建了)接下来就是进行添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
3、安装Android的测试开发环境,到官网下载Android SDK进行安装
4、同样在自己电脑上面,配置 ANDROID_HOME 和 PATH路径
5、虚拟机安装**:**推荐使用-(夜神模拟器)
6、python环境安装:建议使用3.6版本,安装时切记勾选配置环境变量
手动配置:配置环境变量-电脑属性系统变量添加python根目录
温馨提示:以上所有安装包和环境,有需要可以私信我,可以分享安装包链接以及详情操作步骤。
关于使用手机模拟器的话也可以使用真机测试步骤如下:
a:手机通过usb线 连接到电脑
b:在手机上打开文件传输(通知栏,手机正在充电)
c:在电脑上会发现多了一个CD驱动器,里面是手机的驱动
d:安装驱动,电脑的设备管理器中就可以看到型号了
e:开启开发者模式: 手机 – 设置 – 关于手机 – 版本号 (多次点击)
f:打开USB调试: 手机 – 设置 开发者选项 – usb调试(打开)
四、app测试的ADB服务
1、定义就是一个 Android Debug Bridge 安卓调试桥
即包含ADB服务,也包含了与服务对应的Client
2、关系
会在电脑上创建出来一个服务(ADB服务)
手机连上电脑后,都会与服务建立连接
要想发送指令给手机, 需要把指令发送到服务中。
3、作用
通过命令行去操作手机
4、主要命令
a:服务 (如果发现代码连不上手机了)
adb kill-server
adb start-server
b:查看设备
adb devices
c:进入手机终端
adb shell
d:获取信息
adb shell getprop ro.build.version.release 获取手机android版本
adb shell dumpsys window windows | findstr mFocusedApp 获取手机当前运行的程序和界面的名称
e:文件传输
adb push 电脑上的文件 手机上的位置
adb pull 手机上的文件 电脑上的位置
f:软件安装卸载
adb install 电脑上的apk文件路径 安装应用
adb uninstall 应用的包名
g:获取其他信息
adb shell am start -W 包名/.启动名
五、自动化测试工具
一般我们去做app自动化会选取 Appium测试工具优点:支持的语言多、支持的平台多
环境搭建:
安装appnium的程序 在python中安装 Appium-Python-Client 安装selenium和appium的客户端 安装被测试app六、编写python自动化代码
1. 连接设备组装一个字典,注明平台、系统版本、名称
#注明要打开的应用和界面的名称
from appium import webdriver
# server 启动参数
desired_caps = {}
desired_caps["platformName"] = "Android"
desired_caps["platformVersion"] = "5.1"
desired_caps["deviceName"] = "192.168.56.101:5555"
desired_caps["appPackage"] = "com.android.settings"
desired_caps["appActivity"] = ".Settings"
# 从appium库里面导入driver对象
# driver = webdriver.Remomte("appnium程序的地址","一个字典,要获取设置的要求")
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
2. 执行操作
# driver.xxx
# element = driver.find_element_by_xx()
# element.xxx
# 退出
driver.close_app()
driver.quit()
七、风险评估和分析事项
自动化测试的主要风险分析主要有一下几点:(1)测试用例的覆盖率。测试人员开发的测试用例覆盖率是否足够全面,影响了最终的测试效果和测试执行效率。
(2)测试结果的准确程度。测试结果的准确度直接影响最终产品的质量,以及后续对项目进行二次改动和调试的工作难度。
(3)自动化代码维护。因为自动话的脚本需要进行编写和维护这个时间精力成本比较大。(一些数据和关键字驱动的自动化测试框架,应该尽可能的减少代码的更改和优化量。自动化框架的搭建和开发应该尽可能使用面向对象的编程思维进行搭建)。
(4)版本开发以及测试的时间进度。一般如果项目比较稳定,功能更新和迭代周期较长的,都建议选择自动化测试,可以提高测试效率并且高精度的保障产品质量。
(5)开发对控件元素增修改的程度。需开发人员尽可能地用name元素,并且尽量保证开发结果和UI设计保持一致,不要大幅度的修改。这样做的目的是测试工程师能够根据需求中的设计做准确性测试,也方便测试工程师编写自动化脚本提高工作效率。