多测师讲解性能测试 _app(笔记)_高级讲师肖sir
手机测试分为:手工app测试,自动化app测试
先了解下:app和web测试的区别、
1、web基于浏览器, app必须要有客户端
2、web关注响应时间,app还需要关注流量、电量、手机本身的硬件条件
3、兼容方面,web是浏览器兼容,选择不同的浏览器内核,app是手机,有不同品牌,android和ios系统,还需要看屏幕分辨率、屏幕尺寸,和其它app之间的兼容
4、网络环境,App还有不同网络环境,2G、3G、4G、wifi、断网
5、硬件环境,App还需考虑异常场景:中断、关机、死机、重启等
6、交叉事件,接听电话、短信、邮件、其它操作
7、App有横屏和竖屏之分、溢屏、触屏和手势
8、Web直接连接服务器,app的取值方式可能是服务器、接口或本地缓存
9、升级、更新,Web更新无提示,直接进入浏览器就是最新,app是需要自己进行更新才能获取最新数据
10、web登录需要密码,除非设置的记住密码,App有免登录功能
标准区别:
兼容性测试:web兼容各种版本浏览器,app兼容各种操作系统、手机型号、版本
手势:web没有,app有手势测试、功能键测试
交叉事件和横竖屏测试:app需要测试和其它app的兼容,与通话、短信之间的交叉
安装测试:web的bs架构,客户端不需要安装,手机app需要安装测试
更新:web一般更新服务端,app更新会对客户端进行更新,需要对更新进行测试
网络:app需要测试网络之间的切换,以及断网情况下,不同的网络类型对app是否有影响
屏幕的限制:app需要关注不同的屏幕上传的图片,文字的显示效果,是否会溢屏
性能测试:web需要关注页面的响应时间,app除了要考虑响应时间,还需要考虑到耗电量和流量消耗
app:系统(安卓、IOS)安卓开发和IOS开发
灰度包:在实际工作中我们安装包,是有公司通过jenkins打包之后有一个连接,或一个二维码生成, 下载到手机上,就可以进行app测试
通过:真机测试, 模拟器,H5 ( F12)
我们用的模拟器(安卓版,ios版)
Ios 手机,电脑,ios软装证书,
安卓版:基于liunx开发
今天讲解的内容:
一、App自动化测试环境用途: 主要用于做App端的UI自动化测试、熟悉adb相关命令
abd命令:安卓调试桥
二、所需要的工具包:
jdk1.8 #之前已安装过则不需重复安装 java
Android-SDK #软件开发工具包(安卓端的软件开发包)
appium AppiumPythonClient python操作appium的工具
node.js
夜神或逍遥模拟器 (类似手机,通过代码当一个在操作手机)
baiduyuedu_3760.apk #百度阅读的apk包 app包的后缀名,.apk
三、App自动化测试环境搭建全部流程:
1)安装Android-SDK 先解压adt-bundle-windows-x86_64-20140702.zip文件得到如下三个文件和文件夹
2)安装Android-SDK首先需要配置ANDROID_HOME和path
a.电脑右下角点击Windows图标-选择计算机 空白处右键属性左侧栏选择高级系统设置环境变量用户变量增加ANDROID_HOME b.然后把sdk的路径放入变量值(以自己的路径为准,如下为我的sdk路径)
E:讲课文
档课件第二个月课件手机APP自动化相关包搭建环境需要的安装包adt-bundle-windows-x86_64-20140702sdk
比如安装第三方插件:
配置环境环境变量
D:appappnewadt-bundle-windows-x86_64-20140702sdk
这就我的的ANDROID_HOME路径
path中三个变量:
D:appappnewadt-bundle-windows-x86_64-20140702sdkplatform-tools
D:appappnewadt-bundle-windows-x86_64-20140702sdk ools
;%ANDROID_HOME%platformtools;%ANDROID_HOME% ools
path中添加变量
D:appappnewadt-bundle-windows-x86_64-20140702sdkuild-toolsandroid-4.4W
appium app自动化工具
常见app自动化工具分类:
Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。
MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不强
Robotium 测试
Ronaorex 测试
Appium 测试
UI Automator 测试
TestBird测试
appium 的优缺点:
优点:
1、支持多种应用程序包的测试
2、被测试对象无序编译
3、脚本实现多样化及工具多样
4、支持夸平台
缺点:
1、工具必须 依赖电脑才能实现自动化
2、只能用于ui自动化测试
appium的原理
注意:我 们进行app自动化
就要打开
第7步:
appium服务端是node.js写的,所以你安装的时候无论哪个平台都是先装node,然后npm install -g appium安装(FQ墙)
adb 命令的讲解
1、ADB常用的指令:(重点)
查看当前连接设备 : adb devices
进入到shell : adb shell
退出到 shell : exit
查看日志 : adb logcat
安装apk文件 : adb install xxx.apk
卸载APP : adb uninstall +包名
查看包名 : appt d badging +包的路径
往手机SDCard传递文件:adb push 文件名 手机端SDCard路径
从手机端下载文件 : adb pull + 文件
查看手机端安装的所有包名:adb shell pm list packages
查看手机端安装的第三方包名:adb shell pm list packages -3
启动Activity : adb shell am start 包名/完整Activity路径
屏幕截图 : adb shell screencap
启动adb server命令 :adb start-server
停止adb server命令 :adb kill-server
查看adb版本 :adb version
指定adb server网路端口:adb -p start-server
默认端口为5037
让设备在 5555 端口监听 TCP/IP 连接:adb tcpip 5555
通过 IP 地址连接设备:adb connect (后面加模拟器版本和端口号,但一定要先打开模拟器)
断开无线连接 : adb disconnect
from appium import webdriver
from time import sleep
desired_caps={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'SMG9350', #设备名称
'platformVersion':'android4.4W', #平台版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串
'resetKeyboard':True #是将键盘隐藏起来
}
#这个对象就是已经打开了的app
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
driver.implicitly_wait(30) #隐式等待20秒
#driver.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar").click()
#通过 xpath 定位:
sleep(4)
driver.find_element_by_xpath('//android.widget.TextView[@text="取消"]').click()
#//android.widget.TextView[@resource-id='取消']
sleep(4)
driver.find_element_by_name("图书").click()
sleep(4)
driver.find_element_by_name("免费").click()
sleep(4)
driver.find_element_by_name("排行").click()
sleep(4)
driver.find_element_by_name("分类").click()
D:appappnewadt-bundle-windows-x86_64-20140702sdk ools
D:appappnewadt-bundle-windows-x86_64-20140702sdk oolslib
D:appappnewadt-bundle-windows-x86_64-20140702sdkplatformsandroid-20