Android
蜀山客e
这个作者很懒,什么都没留下…
展开
-
Android的功能测试点
安装\卸载App具体功能点联网(默认的联网方式是什么?Wifi orSim卡?网络切换是否有相应的提示说明?飞行模式) 程序进入输入功能时,是否正常弹出键盘;键盘是否遮挡了应用需要输入内容的对话框 home和程序间多次切换返回上一级操作,退出程序后的提示 当离开测试应用一段时间后,在回到测试应用时不能丢失用户数据衡屏竖屏切换时不能丢失用户数据 长按某一按钮是否会触发其他事件注意PC端和APP的数据同步(比如某作者在PC端设置了禁止他人评论,那么在APP上也应该禁止) 如果在APP中内嵌了些超原创 2020-11-24 13:41:08 · 519 阅读 · 0 评论 -
Android App自动化测试(三)
1.Native App自动化测试及Appuim框架介绍android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎。如果想使用uiautomator去做App自动化测试的话,需要去学习java语言,本文分享的主题是基于python的,那么如何使用python来控制App呢?就需要借助本文将要讲到的框架appium。见下图,用python脚本去控制appium,appium再控制uiautomator,然后再由u原创 2020-11-21 13:34:21 · 510 阅读 · 0 评论 -
Android App自动化测试(二)
Appuim自动化测试框架API讲解与案例实践如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例;scroll();如图2从图3中可以看到当前页面的所有元素resource_id都是相同的,所以不能通过resource_id来定位元素,这里选择by_class_name方法来获取元素列表的方式,然后向scroll(object1,object2)中传入两个列表中值;drag()_and_drop();选中某个元素并拖拽到某个元素的位置;如图4,用法与scroll()相同,都原创 2020-11-21 13:15:52 · 328 阅读 · 0 评论 -
Android App自动化测试(一)
Hybrid App自动化测试概要什么是Hybrid App?Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,比如街旁网最开始的应用就是包了个客户端的壳,其实里面是HTML5的网页,后来才推出真正的原生应用。再彻底一点的,如掌上百度和淘宝客户端Android原创 2020-11-21 13:01:17 · 662 阅读 · 0 评论 -
Python+Appium自动化测试-截图方法
一,selenium模块的两种截图方法get_screenshot_as_file(filename) 参数filename为截图文件保存的绝对路径,如:driver.get_screenshot_as_file(r'E:/test_project/screenshot/test_01.png')save_screenshot(filename)该方法与get_screenshot_as_file()不同的是,参数为文件名称,保存当前屏幕截图到当前脚本所在的文件,如:driver.sav原创 2020-10-29 14:19:27 · 2719 阅读 · 2 评论 -
Python+Appium自动化测试-元素等待方法与重新封装元素定位方法
在appium自动化测试脚本运行的过程中,因为网络不稳定、测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种情况,增加代码的健壮性。一,元素等待方法1,强制等待import time# 强制等待5stime.sleep(5)2,隐式等待implicitly_wait()是由webdriver提供的隐式等待方法,它不是针对某一个元素,而是针对当前session(即当前driver对象的原创 2020-10-29 14:01:04 · 1141 阅读 · 0 评论 -
Python+Appium自动化测试-appium元素定位常用方法
Python+Appium自动化测试(5)-appium元素定位常用方法对于Android而言,查找appUI界面元素属性的工具有三种:appium desktop,uiautomatorviewer.bat,weditor。之前已经介绍过了weditor的使用,这里我将通过使用uiautomatorview工具查看元素的属性值,来介绍Android app通过appium进行元素定位常用的几种方法。一,使用uiautomatorview对app页面截图,查看元素属性连接Android手机在And原创 2020-10-29 13:34:00 · 1189 阅读 · 2 评论 -
appium自动化测试--初始化设置
appium原理appium是一个开源的自动化工具,支持多平台(ios、android原生应用、移动web和混合应用)appium&webdriver其实是一个自动化库(ios 9.3以上的XCUITest和9.3以下的UIAutomation、android 4.3以上的uiautomator和uiautomator2、windows的winappdriver),客户端调用库的内容实现需要自动化操作的内容,发送到服务器端,服务器端解释并发送到设备端。可以使用任意语言编写你的客户端。1.启动ap原创 2020-10-17 13:55:17 · 1191 阅读 · 0 评论 -
Jenkins持续集成--安卓app
测试工程师为什么要掌握持续集成一个程序员如果想发布一个产品,他需要编码、编译、测试,发布的过程。对于一个企业来说,如果也想发布一个产品的话,同样的也是需要上述的过程,区别在于企业要发布的产品的需求会很多,如果有一个程序员来完成整个的过程的话,需要花费大量的时间,导致产品的研发周期过长,错过市场良机。为了避免这样的问题出现,企业一般会招聘多个程序员来协同编码,最后再将所有的代码进行集成,而在集成时往往会发现很多bug,这些问题是在研发编码的时候就已经存在了,如果在集成时才发现问题的话,会导致开发者在集成阶段原创 2020-09-29 15:41:16 · 667 阅读 · 0 评论 -
Android app性能测试小结(7个性能指标)
.性能测试的几个指标:性能测试环境准备:启动时间监控值的获取方法启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程;热启动:应用程序启动后点“back”键、“Home”键,应用程序退到后台,并未被完全“杀死”的状态,再次启动;冷启动启动App命令:adb shell am start -W -n package/activity停止App命令:adb shell am force-stop package获取package/activity的方法:1.先执行原创 2020-09-29 14:51:24 · 2537 阅读 · 1 评论 -
appium+python自动化测试文档
一.认识appium1 、什么是appiumappium是开源的移动端自动化测试框架;appium可以测试原生的、混合的、以及移动端的web项目;appium可以测试ios,android应用(当然了,还有firefox os);appium是跨平台的,可以用在osx,windows以及linux桌面系统上2、appium的哲学不需要为了自动化而且重新编译或修改测试app;不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做原创 2020-09-10 14:05:49 · 406 阅读 · 0 评论 -
性能优化——android
一、应用的启动方式通常来说,启动方式分为两种:冷启动和热启动。1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。特点1、冷启动:冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Applic原创 2020-09-10 13:51:59 · 91 阅读 · 0 评论 -
app测试---uiautomator定位方法
uiautomator是什么UIAutomator是android的自动化测试框架,也是Android-Sdk中一个查看页面组件元素工具uiautomator定位方法前面介绍了常规的定位方法,这里uiautomator又提供了3种常用的定位方法,这次我们主要通过uiautomator方法进行介绍,定位的话依旧拿淘宝来做实战通过Text方法1、text(“text文本”)text = 'text("注册/登录")'driver.find_element_by_android_uiautomat原创 2020-09-09 14:05:34 · 1200 阅读 · 1 评论 -
appium---App页面滑动
我们操作app的过程中都会进行页面滑动,那么这个过程通过python怎么实现呢?如何滑动大家都非常的清楚我们手动在app上是如何滑动的,然后自动化只是模仿了手工的方法去实现,我们通过一个图来分析从上往下滑动的时候,我们通常会按(X1,Y1)这个坐标,然后往下进行滑动,一直滑到(X2,Y2)这个坐标从下往上滑动的时候,我们会按(X2,Y2)这个坐标,往上进行滑动到(X1,Y1)这个坐标当然了左往右进行滑动和从右往左进行滑动的思路都是一样的了。swipeswipe是appium模块中的一个方法,原创 2020-09-09 13:46:44 · 824 阅读 · 0 评论 -
移动端自动化测试之adb常用命令
简介首先介绍下什么是adb,adb全称叫“android debug bridge”,翻译过来就叫调试桥,通过命令行指令,可让你与移动端设备进行相互通信。adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:1.客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。2.守护进程 (adbd):在设备上运行命令。守护进程在每个设备上作为后台进程原创 2020-09-08 13:49:55 · 478 阅读 · 0 评论 -
appium---多进程启动app(多设备启动app)
上一篇简单的介绍了如何通过多线程进行启动app,但是后面发现了一个问题,就是app操作必须要等到一台结束后,下一台才能进行任务,那么有没有办法让他们同时运行呢?这个时候我们可以了解下多进程。跳转门:appium—多线程启动app(多台设备启动app)进程和线程的区别线程:计算机的执行单位以线程为单位。计算机的最小可执行是线程。。线程是可执行的基本单位,是可被调度的基本单位。线程不可以自己独立拥有资源。线程的执行,必须依赖于所属进程中的资源。。进程:进程是资源分配的基本单位,进程中必须至少应该有一个线程原创 2020-08-29 15:09:37 · 526 阅读 · 0 评论 -
appium---多线程启动app(多台设备启动app)
在app自动化的过程中,可能会需要通过自动化来做一些手机的兼容性测试,但是需要同时在多个手机启动app环境搭建1、模拟器选择的是雷电模拟器多开器。2、两台设备都安装淘宝3、安装appium命令行配置手机信息需要把手机信息,就是通常我们启动手机的desired_caps配置信息。这里安静通过yaml的方式进行配置- devices: emulator-5554 port: 4730 desired_caps: platformName: Android deviceN原创 2020-08-29 14:44:42 · 732 阅读 · 2 评论 -
appium---PO模型设计
我们在做自动化的时候应该都听过PO模型,那么什么是PO模型呢?PO模型在自动化中的作用是什么呢?PO模型PO其实就是:、Page Object Model,也称作为POM模型,PO其实是一种设计模式,已经在自动化测试中流行起来,以增强测试维护并减少代码重复。页面对象是面向对象的类,用作页面的接口和被测设备。 然后,只要测试需要与该页面的UI进行交互,这些测试便会使用该页面对象类的方法,其好处在于,如果页面的UI发生了更改,则无需更改测试本身,只需更改其中的代码即可。页面对象需要更改。 随后,所有支持该新原创 2020-08-29 14:35:35 · 998 阅读 · 0 评论 -
appium---appium自动化原理
appium的原理是什么?我们一直在思考如何编写自动化测试用例,但是却忘记了最基本的原理是什么。Appiumappium是一种开源的软件,跨平台(IOS、android),跨语言的自动换软件,不仅可以使用python,java编写测试用例,都可以进行运行。Appium使用的WebDriver的json wire协议来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架Appium工作原理1、Android设备在Android端,appium基于WebDr原创 2020-08-29 14:02:35 · 257 阅读 · 0 评论 -
appium---封装appium命令行
前面我们把简单的页面逻辑,定位元素,已经定位方法都封装好了,但是还不支持一键启动,为什么呢?因为我们还要去打开appium才可以,那我们可以思考下,如果把appium命令行启动也封装起来,那是不是真的可以一键执行了?实现了自动化?appium参数配置在前面的版本中说明了,appium分为客户端和命令行的,在自动化中想要一键执行的话,如果通过客户端做成一键启动成本有点大,但是可以通过命令行去启动appium,这样简单易实现appium命令行安装:appium—命令行启动appium这里要提到一点,依然原创 2020-08-29 13:58:27 · 405 阅读 · 0 评论 -
appium---命令行启动appium
在客户端的appium长时间运行的时候,出产生一些数据、日志有可能会对appium的内存有所增长,严重的会使appium产生崩溃,这个时候就推荐使用通过cmd进行运行appium,安装前提需要安装NodeJS,npmNodeJS安装 2.傻瓜式安装(一直点击下一步)Appium安装通过npm进行安装注意:因为是本地下载,可能会很慢npm install appium@1.8.0(版本号可以变化)使用cnpm进行安装# 安装cnpmnpm install -g cnpm --re原创 2020-08-28 19:37:28 · 446 阅读 · 0 评论 -
分享——Appium 服务命令行参数
Appium 可以直接通过命令行启动,同样支持命令行参数配置使用方法例如:appium --shell服务器标志所有的标志都是可选的,但是有一些标志需要组合在一起才能生效。标志默认值描述例子–shellnull进入 REPL 模式–localizable-strings-diren.lprojIOS only: 定位 .strings所在目录的相对路径–localizable-strings-dir en.lproj–appnulliOS:原创 2020-08-28 19:23:29 · 233 阅读 · 0 评论 -
appium---定位封装
自动化测试讲究的是简单,快捷,便于维护。对于自动化维护这一块最重要的也就属元素定位了。思路写代码之前我们养成先把思路理清楚,这样再写代码的时候才不会不知道如何下手了。1、通过yaml(或者其他工具)管理元素和定位方法2、封装读取yaml(或者其他工具)函数3、通过读取yaml信息把定位信息和元素分离出来并填入对应的定位方法中PS:这里通过淘宝登陆练习。编写元素和定位方法这里我们可以把页面元素和定位方法通过yaml数据进行填写在同一个yaml中。这里通过“>”进行把定位方法(by)和元原创 2020-08-28 13:47:30 · 659 阅读 · 0 评论 -
appium---代码自动安装app
在做自动化的过程中,前面都是写的已经把APK安装好了,那么我们做自动化的时候如何把安装的用例也写进去呢?安装apk方法一:我们可以在执行用例启动服务前,直接通过adb install 的方法进行安装apk# coding:utf-8from appium import webdriverimport timeimport osadb = 'adb install shoujitaobao.apk'# 执行apkos.popen(adb)time.sleep(6)desired_cap原创 2020-08-28 13:37:11 · 443 阅读 · 0 评论 -
appium---定位toast
toasttoast属于一种轻量级的反馈,常常以小弹框的形式出现,一般出现1到3秒会自动消失,可以出现在屏幕上中下任意位置。那么toast怎么进定位呢?我们先看下toast在app中是怎么显示的app中的toast我们打开淘宝,进入淘宝后,然后点击返回按钮。淘宝页面底部会出现一个弹框,这就是toast定位toast知道什么是toast了,那么怎么定位toast呢?定位toast有两个前置条件:1、appium必须是1.7以上的版本才可以2、在启动appium的参数中加入 ‘automati原创 2020-08-28 13:28:21 · 535 阅读 · 0 评论 -
appium---等待时间
在做UI自动化的过程中,我们有时候为了等待元素的出现,需要加一些等待时间来帮助,但是有时候时间加的过多或者过少,这个没有办法判断,今天介绍几种等待时间,我们看看那种适合我们 ,我们就用哪一种强制等待看到名称就应该知道,强制等待,就是设置多少秒,就必须等待多少秒,才能继续往下面操作time.sleep()def sleep(seconds): # real signature unknown; restored from __doc__ """ sleep(seconds)原创 2020-08-27 19:06:23 · 271 阅读 · 0 评论 -
appium---Activity
在做自动化的过程中,我们都会发现每次都要从头开始点,一直要点到最后,如果中间出现错误,就需要重现去点,这样很麻烦也很费时间,今天我们来认识一种非常简单的方法,想要测试那个页面,我们就直接跳转到哪个页面进行测试。ActivityActivity是Android系统中的四大组件之一,可以用于显示View。几乎所有的Activity都是对于用户进行交互的,如果还不懂的话,页面,我们所看到的app中的页面就属于一个Activity。其中Android四大组件有Activity,Service服务,Content原创 2020-08-27 14:54:16 · 1121 阅读 · 0 评论 -
appium---MultiAction
MultiActionMultiAction是多点触控的操作的类,可以模拟用户的多点操作,主要包含加载add()和执行perform()两个方法,大多数结合TouchAction模块进行使用源码:class MultiAction(object): def __init__(self, driver, element=None): self._driver = driver self._element = element self._touch_原创 2020-08-27 14:18:08 · 428 阅读 · 0 评论 -
appium---操作手机按键(adb shell input keyevent )
通常在做app测试的时候,我们都会用到一些开机键,返回键,home键等一系列的操作来帮助我们测试,那么在自动化中如何实现这些呢?keyeventkeyevent表示android中的模拟手机的一些按键。格式:# 直接输入数字adb shell input keyevent KEYCODE_HOME# 输入字符串adb shell input keyevent 3我们通过实例进行演示下,在代码中如何操作。# coding:utf-8from appium import webdrive原创 2020-08-27 13:42:31 · 952 阅读 · 0 评论 -
appium---adb通过wifi连接手机
想要测试下apk的耗电量,可以通过手机adb命令进行监控手机电量的变化;但是这样如果通过USB连接手机的话,USB就会自动给手机进行充电,无法达到我们想要的结果,于是想到了通过wifi对手机进行连接。使用USB连接手机1.在手机上进入到开发者模式—USB调试打开2.打开cmd,再输入adb devices# 查看设备adb devices# 执行结果List of devices attached6T1911030E7A9A33 device通过wifi连接手机注:手机原创 2020-08-25 13:22:53 · 315 阅读 · 1 评论 -
appium---adb logcat 命令详解
我们在做app测试的过程中,肯定会遇到需要抓取日志问题,这几天安静也遇到了此问题,后台日志生成的太多了,保存本地了吧,设备多没有这么USB,通过wifi连接又太麻烦,你说这怎么是好?不要着急,我们往下看adb logcat介绍adb 是android一个操作命令,前面有讲过—-常用的adb命令logcat 是android一个打印日志的工具,当然也可以通过命令行进行操作。最主要的是不仅仅可以PC端使用,还可以在app内部进行使用logcat原理格式[adb] logcat [<optio原创 2020-08-24 14:18:22 · 596 阅读 · 0 评论 -
appium----Monkey测试
做过app测试的应该都知道Monkey测试,今天简单的介绍下Monkey如何测试什么是Monkeymonkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。环境依据Monkey属于Android自带的,主要依据adb命令,安装Android-sdkM原创 2020-08-24 14:07:57 · 254 阅读 · 0 评论 -
appium---webview(H5)元素定位
我们在做UI自动化的时候,肯定需要元素定位,那么webview(H5)的元素怎么定位呢?webview定位方法方法一:1、打开chrome浏览器,输入chrome://inspect2、连接手机,如果没有加载出来设备,请检查是否连接手机以及打开开发者模式3、打开手机app找到需要定位的页面(webview)然后刷新chrome网页,这个时候会出现一些内容,点击inspect或者输入在网页中输入地址。(需要翻墙)4、进行点击查询按钮,这样就可以定位元素位置了。这样就按照selenium定位方法原创 2020-08-24 13:52:29 · 1297 阅读 · 0 评论 -
appium---切换webview时报错
在上一篇中简单介绍了如何查看webview和切换到webview的方法,可能第一次切换webview的时候会报错“Error: session not created exception: Chrome version must be >= XX.XXXXX”,遇到的朋友们不要怕,这个只是检测到chrome的版本号和chrome驱动没有对称。如果做过web自动化的朋友可能更加清楚,更换chrome和chrome驱动的版本号就行了切换webview报错我们在执行方法 _switch_to.conte原创 2020-08-24 13:47:44 · 458 阅读 · 0 评论 -
appium---如何判断原生页面和H5页面
目前app中存在越来越多的H5页面了,对于一些做app自动化的测试来说,要求也越来越高,自动化不仅仅要支持原生页面,也要可以H5中进行操作自动化,这一篇介绍如何查看页面上是否存在H5页面,这里首先要了解一个知识点webview是什么webview是什么webview是属于android中的一个控件,也相当于一个容器,需要把H5的一些前端内容,通过这个容器去调用,显示和渲染网页目前很多app中都实现app原生页面(native)和webview页面(H5),我们如何查看页面上哪些存在webview和na原创 2020-08-24 13:32:20 · 804 阅读 · 1 评论 -
appium---adb shell input 模拟操作系列
adb做为android的调试桥,在做app自动化中有着巨大的用处,可以帮助我们解决问题,今天主要认识adb shell inputadb shell input我们首先通过cmd输入adb shell input有哪些内容$ adb shell inputUsage: input [<source>] <command> [<arg>...]The sources are: mouse keyboard joystick原创 2020-08-22 14:08:40 · 329 阅读 · 0 评论 -
appium---常用的adb命令
在测试android-app的时候,adb命令可以帮助我们解决许多问题什么是adbAndroid Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互。常用的adb命令格式:adb [-d|-e|-s <serialNumber>] <command>-d: 让唯一连接到该PC端的真实安卓设备执行命令,如果发现USB中连接有多部设原创 2020-08-22 14:02:32 · 342 阅读 · 0 评论 -
appium---Android app资源监控
我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化实现原理1、通过adb命令查看app资源内存2、通过python脚本调用adb命令3、持续监控写入txt文件或者csv文件中监控资源过程我们以淘宝app为例完成本次监控adb监控内存命令# adb监控内存变化adb shell dumpsys meminfo com.taobao.taobao进行数据分析通过观察,我们只需要提取出来结果的 Native原创 2020-08-19 16:33:38 · 573 阅读 · 2 评论 -
Android app资源监控
我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化实现原理1、通过adb命令查看app资源内存2、通过python脚本调用adb命令3、持续监控写入txt文件或者csv文件中监控资源过程我们以淘宝app为例完成本次监控adb监控内存命令# adb监控内存变化adb shell dumpsys meminfo com.taobao.taobao进行数据分析通过观察,我们只需要提取出来结果的 Native原创 2020-08-22 15:27:01 · 1201 阅读 · 0 评论