一.启动时间:
1.冷启动:app退出
a.启动app命令:adb shell start -W -n package/activity
b.停止app命令:adb shell am force-stop package
注意首先要获取package名和activity名,在终端执行命令:adb logcat | grep START,打开浏览器,在cmp后面的就是相关的package和activity名.
2.热启动:app退出到后台.
a.启动app命令:adb shell start -W -n package/activity
b.停止app命令:adb shell input keyevent 3
自动化脚本的实现:
1.获取命令执行时间,作为启动时间参考值.
2.在命令前后加上时间戳,以差值作为参考值.
注意,自动化脚本写完之后,运行后获得的数据一般第一条数据不准确,剔除.
二.cpu
1.获取数据:adb shell dumpsys cpuinfo | grep packagename
三.流量
1.获取进程id指令:adb shell ps | grep packagename
2.获取进程id流量: adb shell cat /proc/pid/net/dev
四.电量
1.获取电量: adb shell dumpsys battery
2. 切换非充电状态: adb shell dumpsys battery set status 1 (status非2即可,2为充电状态)
五.内存
1.获取内存: adb shell top -d 1 (-d就是刷新的频率是1秒钟一次)
VSS - Virtual Set Size 虚拟耗用内存
RSS - Resident Set Size 实际使用物理内存
六.fps&过度渲染
1.fps:每秒的帧数
2.过度渲染:描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次
应用测试框架的意义
1.提高代码的易读性
2.提高嗲吗效率
3.提高代码的易维护性
自动化实例
1准备测试的app
2.准备自动化测试环境
环境1
01.appium
02.Android SDk
03.Appium-python-client
环境2
Selenium
UIAutomatorViewer
Pycharm
3.自动化用例开发
1.确认自动化环境
2.自动化脚本编写
3.自动化脚本的运行
确认被测手机名称:adb devices
unittest
1.Test Fixture
结构:
setup()
testcase()
teardown()
2.Test Case
3.Test Suite
4.Test Runner
数据驱动
1准备第三方库
首先安装ddt库,其次在脚本中引入ddt.
直接在命令行里面运行安装.
数据驱动到的应用
1,使用元祖存放被测试的数据,一个参数的情况
@data(1,-3,2,0)
def testcase(self,value):
这里的value就是data里面单个的数据
2使用元祖存放被测试的数据,多个参数的情况
@data((3,2),(4,3),(5,3))
@unpack
def testcase(self,value1,value2):
这里的value就是data里面的数据,value1对应3,value2对应2
实践
1.数据驱动的应用:
在登录的过程中,将登陆的数据,使用数据驱动实现
app api自动化测试
基础概念: 应用编程接口, http api
fiddler
环境准备:
fiddler安装
工作原理:
客户端---fiddler---服务器
基本界面:
设置断点修改request:
设置断点的两种方式:
1.通过工具栏设置断点:rules--->automatic breakpointg--->before requests 设置后,在右侧的webform中修改对应的值
2.通过命令设置断点:在左下方输入框bpu+www.badun.com 清除直接输入bpu就行了
设置断点修改response:
设置断点的三种方式:
1.通过工具栏设置断点:
2.通过命令设置断点:bpafter+www.baidu.com
3.autoresponse设置:
fiddler小工具
1.会话的过滤:filter下面进行相关的设置,过滤到我们关心的内容
2.会话的比较:选中对比的两个会话,右键选择compare 注意下载windiff工具
3.编码的小工具:tool-->textwirard
host设置
1.找到win系统下的host文件,进行修改.tool--->host remapping
2.安装小工具,帮助修改host
3.借助fiddler工具,实现host的修改
构造http请求:
1.get请求
2.post请求
抓取手机包:
1.配置fiddler允许监听https: tool--->fiddler options---https设置---connect中的四个选项,勾选下面三个
2.配置fiddler允许远程连接
3.手机端设置代理服务
优点:1.无需root权限. 2. android&ios均适用 3.操作简单&界面清晰
postman
api接口测试问题:
1.后端服务提测时间早于客户端
2.很难用客户端模拟异常请求
3.fiddler的composer无法实现自动化验证
适用范围:1.pc 2.wap 3.app
环境准备:安装应用包--->注册新用户
发送get或者post请求,设置检查点,检查请求返回值,自动运行请求集合
节省回归测试人力
ddt在api自动化的应用
1.Python request模块的准备
2.http get测试脚本的实现
3.http post测试脚本的实现
4.在api自动化中应用ddt
持续集成实例
使用jenkins自动化测试app:
提交代码-->卡取代码-->编译-->打包-->配置-->测试-->反馈问题-->开发处理-->提交代码
Android native app自动化
appium:
android平台的
理念:1.无需重新编译应用,
2.不局限于语言和框架,
3.无需重复造轮子,接口统一,
4.开源
跨架构: native,hybrid,webview
跨设备:android,ios,firefox OS
跨语言:java,Python,ruby,php,js
跨进程:不依赖源码基于(UIAutomator)
APPIUM原理
SELENDROID的架构
contexts:上下文内容,没有参数
switch_to.context()切换上下文
find_element_by_xpath()定位元素
find_elements_by_xpath()
click()
time.sleep()
assertTrue()
assertEqual()