肖sir__app测试之介绍(18.0)

app测试

app功能测试和app自动化测试

===============================

(一)app手工测试

app手工测试:就是在app上进行手工测试

app自动化测试使用代码或工具来代替手工测试

(二)web测试和app测试区别?( 重点)

(1)单纯从功能测试的层面上来讲的化,app测试、web测试在流程和功能测试上是没有区别

(2)根据两者载体不一样,区别:

web项目:b/s 架构,基于浏览器的;web测试只要更新服务器端,客户端就会同步更新

app项目 :c/s 架构  必须在客户端;app修改了服务端,则客户端用户所有核心版本都要进行回归测试一遍。

(3)性能方面:

web项目  需检测响应时间,cpu,

app项目   需检测响应时间,cpu,还要考虑流量,电量

(4)兼容性方面

web项目:
浏览器(火狐、谷歌、IE等)
操作系统(Windows7、Windows10、Linux等)
app项目:
设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)、鸿蒙系统、mac
手机设备可根据 手机型号、分辨率不同
相对于 Wed 项目,APP有专项测试
干扰测试:中断,来电,短信,关机,重启等
弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
安装、更新、卸载
安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况(手动安装、自动安装)
卸载:需考虑 卸载后是否删除app相关的文件
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
测试工具方面
自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
注意点:特别是在app上的数据的缓存和进程,经常影响我们测试数据;

====================================

三、app系统分类

在市面上app测试流行,分为安卓端和ios端(ios端必须要maos系统,还要企业级的证书,再公司一般不会用ios做自动化)
开发人员都是用模拟器,(1、模拟手机种类多,2、连接稳定 3、运行稳定 )

面试题:app中ios和安卓区别?
① 两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
iphone沙盒机制解释:应用程序位于文件系统的严格限制部分,程序不能直接访问其他应用程序。以杀毒软件中的沙盒技术解释一下。“沙盒”技术是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。
安卓虚拟机机制解释:android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。
② 两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
③ IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
④ ios系统流畅性更具优势。Android系统采用虚拟机的运行机制,需要消耗更多系统资源。Android系统使用一段时间后容易出现卡顿,而ios系统则很少出现卡顿现象,并且Android系统的桌面灵敏性不如ios系统。
⑤ Android的编程语言是JAVA,而iOS的则为Objective-C。Objective-C的优势是效率高但比较“唯一”,而JAVA的优势则是跨平台不过运行效率相对偏低。
⑥ 操作界面来讲,ios系统界面单一。而Android的界面可以根据自己的喜好来设置,更加多样化。
⑦ 省电的角度来讲,ios系统更加省电。这是系统机制决定的。Android会占用更多的资源来支撑系统运行,导致了它会比较费电。

=============================

(四)app测试包(后缀名是apk的包)(ios的后缀名:.ipa)

 在网上可以看到的包是(生产包)

 app 的包下载(灰度包,测试包),开发提交代码,合并代码,通过jenkins 构建,生成测试包:

生成的方式:

第一种:一个连接(url)的方式  (下载灰度包)  

第二种:二维码的形式  (下载灰度包)

 

=============================

(五、)app测试流程:(和H模型一样)

1、看需求,分析需求

 3、写用例 (自动化脚本的编写)

4、搭建环境(部署好app自动化环境)

5.测试(通过jenkins打包生成最新的apk包,下载后安装到模拟器或手机中)

6、测试,开发修改bug

7、重新提交版本,在打包,在进行测试

8、输出测试报告

=============================

(六)app自动化工具appium 的优点?

优点

(1)支持多种应用程序

(2)测试对象无需编译

(3)脚本实现多样化以及工具的多样

(4)支持跨平台

缺点

(1)工具必须依赖电脑才能实现自动化

(2)工具只能用于ui自动化测试

 

==========================

定位元素:

 

from   appium  import  webdriver
from time import *
cs={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'OPPO R17', #设备名称
'platformVersion':'android-5.1W', #平台版本
'appPackage':'com.moji.mjweather', #包名
'appActivity':'com.moji.mjweather.LauncherActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(10)
# dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意进入
# dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")
#dx.find_element_by_android_uiautomator()#
dx.find_element_by_android_uiautomator('new UiSelector().text("北京市")').click()
posted @ 2024-04-15 17:14  xiaolehua  阅读(98)  评论(0编辑  收藏  举报