干货|手把手教你做app自动化测试
什么是App自动化?为什么要做App自动化?
App自动化是指给 Android或iOS上的软件应用程序做的自动化测试。
手工测试和自动化测试的对比如下:
手工测试优势:不可替代、发现更多bug、包含了人的想象力与理解力。
注意,不是所有功能都需要自动化。
自动化测试优势:可重复、效率高,增加软件信任度。
执行自动化测试可以让测试同事有更多的精力来关注复杂场景,做更多更深层次的测试。
风险分析
自动化测试的主要风险分析如下:
(1)测试用例覆盖率(覆盖率决定测试效率,选择合适用例,应约占功能用例集的20%~50%)
(2)测试结果准确度(准确度决定了测试有效性,应尽可能减少误报)。
(3)自动化代码维护(维护决定了成本,数据关键字驱动自动化框架,代码应尽可能优化和少改动)。
(4)版本开发和测试时间进度(当项目需求和功能较为稳定时,建议用自动化)。
(5)开发对控件元素增修改的程度(需开发人员尽可能地用name元素,并且和UI设计一致,修改变动程度不大,测试人员可根据提供的元素提前介入,开发自动化脚本)。
App源码权限控制,iOS上测试需要源码。实际测试只需SVN或者git下载权限,而不需要上传权限。防止改动SVN或者git 上的源码。
技术框架
01
自动化学习过程
自动化测试环境的部署-->自动化测试脚本开发能力--->自动化测试框架研发--->手机自动化持续集成
02
andorid 系统架构图
03
手机自动化测试环境
安装Appium-->安装手机模拟器-->安装selenium和appium的客户端-->安装被测试app
04
Appium 软件架构
05
常用的定位技术和工具
06
自动化测试脚本技术
07
技术框架结构图
APP自动化测试流程
01
环境的安装
1.1 环境的准备
1:jdk1.6以上
2:python2.7以上
3:android-sdk
4:Appium desktop 安装
1.2 jdk 安装
1:下载JDK后傻瓜式安装,注意:不要有中文路径和空格
2:配置环境变量:
右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量"
1)在系统变量里新建"JAVA_HOME"变量,变量值为:C:\Program Files\Java\jdk1.8.0_60(根据自己的jdk的安装路径填写)
2)在系统变量里新建"classpath"变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
3)找到path变量(已存在不用新建)添加变量值:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
1.3 python 安装
1:傻瓜式安装;
2:配置环境变量:电脑属性系统变量添加python根目录
1.4 安装Android的测试开发环境
1:Android-SDK的安装:SDK manager.exe 双击打开下载
2:android-sdk环境变量的配置
具体操作步骤:
1.新建ANDROID_HOME
路径为C:\Program Files (x86)\Android\android-sdk\
2.在Path 变量中加入路径
%ANDROID_HOME%\platform-tools 和 %ANDROID_HOME%\tools
3. 检查adb 环境变量
4.连接手机
如果是真机,手机插上USB连接电脑,打开开发者模式,cmd输入adb devices
如果是模拟器,需要输入adb connect 127.0.0.1:62001或者52001连接,然后再输入adb devices
Appium desktop 安装
下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
傻瓜式安装 注意:一定要选择所有用户权限要不然用不了UiAutomator2
02
API脚本
2.1如何获取APP启动的AppPackage和AppActivity
1:通过appt获取切换到aapt所在的目录,执行aapt dump(aapt是sdk自带的一个工具,在sdk\builds-tools\目录下)使用命令aapt dump badging “D:\ jinritoutiao_7500.apk”运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name=’ com.ss.android.article.news’
launchable-activity: name=‘com.ss.android.article.news.activity.LaunchActivity’
2: 通过 adb shell am start com.ss.android.article.news/com.ss.android.article.news.activity.MainActivity
来判断启动的app 是否正确
2.2 启动appium
2.3、写脚本
1、platformName:这里是 android 的 apk
2、deviceName:手机设备名称,通过 adb devices 查看
3、platformVersion:android 系统的版本号
4、appPackage:apk 包名
5、appActivity:apk 的 launcherActivity
2.4生成测试报告
干货|手把手教你做app自动化测试相关推荐
- 平面设计中的网格系统_干货 | 手把手教你做#响应式设计# 还有标准栅格系统库分享!...
不管是做平面设计还是UI设计的同学,「网格系统」(又称栅格系统)都是经常听到的专有名词,但是一遇到栅格系统如何指导我们做响应式设计的问题,很多同学都会一脸懵*.本期推荐Ivan.Zheng的深度好文, ...
- 易基因|干货:手把手教你做RNA m5C甲基化测序分析(RNA-BS)
大家好,这是专注表观组学十余年,领跑多组学科研服务的易基因. 本期,我们讲讲m5C RNA甲基化重亚硫酸盐测序测序(RNA-BS)实验怎么做,从技术原理.建库测序流程.信息分析流程等方面详细介绍. 一 ...
- 最新免费自建APP平台哪个好?手把手教你制作APP
大型二手交易网站咸鱼近日发布<90后分享经济消费报告>,报告显示:16-27岁的年轻人用户占比已达55%,90后已成为分享经济的绝对主力:基于地理位置或兴趣同好形成的社区"鱼塘& ...
- 手把手教你做短视频去水印微信小程序(2-首页)
手把手教你做短视频去水印微信小程序系列教程(2-首页) 文章目录 手把手教你做短视频去水印微信小程序系列教程(2-首页) 前言 一.顶部banner 二.地址解析 1.整体代码 2. input框输入 ...
- 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式
在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...
- 手把手教你做一个自己的chrome扩展程序
手把手教你做一个自己的chrome扩展程序 [目录] first.效果 1.收藏夹修改 (1).鼠标移动到收藏夹上的动作效果 (2).收藏夹框 (3)百度搜索框功能 2.右上文字修改 3.背景图片修改 ...
- 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式
在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...
- 微信测试工程师手把手教你做弱网络模拟测试
微信测试工程师手把手教你做弱网络模拟测试 Posted by 腾讯优测 | 3,152 views 小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用 ...
- 手把手教你做一个物联网视频监控项目(三)流媒体方案实现
往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...
最新文章
- html5绘制小鱼,HTML5 Canvas 深海游弋的鱼群
- linux文件删除指定内容,Linux bash删除文件中含“指定内容”的行功能示例
- poj -- 2288 Islands and Bridges
- ubuntu14.04 下emacs 24 配置
- Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
- 如何对第一个Vue.js组件进行单元测试
- windows下同时安装python2与python3
- [剑指Offer]9.用两个栈实现队列
- 没有5年测开经验,还真说不清Python生成器、迭代器、装饰器
- 2018-7-10-随笔-计算机系统和程序设计方法
- Go语言:数组练习—从一个整数数组中获取最大整数,最小整数,总数以及平均值
- android java程序中调用shell命令
- 2020中青杯A题集成电路通道布线数学建模全过程论文及程序
- 运行ug软件需要什么样的配置?
- socket套接字编程 | 粘包现象 | 报头 | struck模块
- python两两组合_python – 一个列表中的两个组合列表
- 计算机原理综合设计,《计算机组成原理综合设计报告》.doc
- java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.xx.xx.xx.xx.Acce
- Python基于Tensorflow实现DCGAN-动漫头像生成
- 达林顿管是什么,它的应用有哪些
热门文章
- 【C++】Windows 读取注册表方法获取串口设备信息
- Hbase 操作时出现:Server is not running yet
- 3月全网最火的红人排行榜出炉
- stateflow入门学习笔记
- 求一个数的个位,十位,百位,千位分别是多少?/三目运算符的应用?
- 什么是音箱阻抗与阻尼系数
- SpringBoot之@ConditionalOnProperty实战二:自定义定时器开关
- 玲珑杯”ACM比赛 Round #15 D
- Redis之java操作(String/hash/set)
- win10坑爹的 BitLocker