什么是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自动化测试相关推荐

  1. 平面设计中的网格系统_干货 | 手把手教你做#响应式设计# 还有标准栅格系统库分享!...

    不管是做平面设计还是UI设计的同学,「网格系统」(又称栅格系统)都是经常听到的专有名词,但是一遇到栅格系统如何指导我们做响应式设计的问题,很多同学都会一脸懵*.本期推荐Ivan.Zheng的深度好文, ...

  2. 易基因|干货:手把手教你做RNA m5C甲基化测序分析(RNA-BS)

    大家好,这是专注表观组学十余年,领跑多组学科研服务的易基因. 本期,我们讲讲m5C RNA甲基化重亚硫酸盐测序测序(RNA-BS)实验怎么做,从技术原理.建库测序流程.信息分析流程等方面详细介绍. 一 ...

  3. 最新免费自建APP平台哪个好?手把手教你制作APP

    大型二手交易网站咸鱼近日发布<90后分享经济消费报告>,报告显示:16-27岁的年轻人用户占比已达55%,90后已成为分享经济的绝对主力:基于地理位置或兴趣同好形成的社区"鱼塘& ...

  4. 手把手教你做短视频去水印微信小程序(2-首页)

    手把手教你做短视频去水印微信小程序系列教程(2-首页) 文章目录 手把手教你做短视频去水印微信小程序系列教程(2-首页) 前言 一.顶部banner 二.地址解析 1.整体代码 2. input框输入 ...

  5. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...

  6. 手把手教你做一个自己的chrome扩展程序

    手把手教你做一个自己的chrome扩展程序 [目录] first.效果 1.收藏夹修改 (1).鼠标移动到收藏夹上的动作效果 (2).收藏夹框 (3)百度搜索框功能 2.右上文字修改 3.背景图片修改 ...

  7. 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...

  8. 微信测试工程师手把手教你做弱网络模拟测试

    微信测试工程师手把手教你做弱网络模拟测试 Posted by 腾讯优测  | 3,152 views 小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用 ...

  9. 手把手教你做一个物联网视频监控项目(三)流媒体方案实现

    往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...

最新文章

  1. html5绘制小鱼,HTML5 Canvas 深海游弋的鱼群
  2. linux文件删除指定内容,Linux bash删除文件中含“指定内容”的行功能示例
  3. poj -- 2288 Islands and Bridges
  4. ubuntu14.04 下emacs 24 配置
  5. Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
  6. 如何对第一个Vue.js组件进行单元测试
  7. windows下同时安装python2与python3
  8. [剑指Offer]9.用两个栈实现队列
  9. 没有5年测开经验,还真说不清Python生成器、迭代器、装饰器
  10. 2018-7-10-随笔-计算机系统和程序设计方法
  11. Go语言:数组练习—从一个整数数组中获取最大整数,最小整数,总数以及平均值
  12. android java程序中调用shell命令
  13. 2020中青杯A题集成电路通道布线数学建模全过程论文及程序
  14. 运行ug软件需要什么样的配置?
  15. socket套接字编程 | 粘包现象 | 报头 | struck模块
  16. python两两组合_python – 一个列表中的两个组合列表
  17. 计算机原理综合设计,《计算机组成原理综合设计报告》.doc
  18. java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.xx.xx.xx.xx.Acce
  19. Python基于Tensorflow实现DCGAN-动漫头像生成
  20. 达林顿管是什么,它的应用有哪些

热门文章

  1. 【C++】Windows 读取注册表方法获取串口设备信息
  2. Hbase 操作时出现:Server is not running yet
  3. 3月全网最火的红人排行榜出炉
  4. stateflow入门学习笔记
  5. 求一个数的个位,十位,百位,千位分别是多少?/三目运算符的应用?
  6. 什么是音箱阻抗与阻尼系数
  7. SpringBoot之@ConditionalOnProperty实战二:自定义定时器开关
  8. 玲珑杯”ACM比赛 Round #15 D
  9. Redis之java操作(String/hash/set)
  10. win10坑爹的 BitLocker