<article class=“article fmt article-content”><p></p><h5>本系列文章md笔记(已分享)次要探讨挪动测试相干常识。次要知识点包含:挪动测试分类及android环境搭建,adb常用命令,appium环境搭建及应用,pytest框架学习,PO模式,数据驱动,Allure报告,Jenkins继续集成。把握操作app的根本api,把握元素定位及获取元素信息的api,把握事件操作api,把握app模仿手势操作,把握手机操作的api。把握pytest函数执行程序,把握pytest函数参数化,把握PO模式的作用,把握yaml语法。可能应用allure和pytest生成测试报告。</h5><h2>全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码</h2><h2>感兴趣的小伙伴能够自取哦,欢送大家点赞转发~</h2><hr/><h3>共 7 章,34 子模块</h3><p></p><h2>挪动端测试介绍</h2><h3>学习次要内容</h3><table><thead><tr><th>1</th><th>挪动测试分类及android环境搭建</th></tr></thead><tbody><tr><td>2</td><td>adb常用命令</td></tr><tr><td>3</td><td>appium环境搭建及应用</td></tr><tr><td>4</td><td>pytest框架学习</td></tr><tr><td>5</td><td>PO模式</td></tr><tr><td>6</td><td>数据驱动</td></tr><tr><td>7</td><td>Allure报告</td></tr><tr><td>8</td><td>Jenkins继续集成</td></tr></tbody></table><h3>学习指标</h3><ol><li>把握挪动端安卓模拟器的装置</li><li>把握常见的adb指令</li><li>理解支流的挪动端自动化测试工具</li><li>把握appium环境搭建</li><li>理解appium入门案例</li></ol><h2>挪动端测试常识概览</h2><h3>学习指标</h3><ul><li>理解挪动端测试分类</li></ul><h4>1. 什么事挪动端测试</h4><p>挪动端测试是指对挪动利用进行的测试, 即实体的个性满足需要的水平</p><h4>2. 挪动端测试分类</h4><h5>2.1 app功能测试</h5><ul><li>业务逻辑正确性测试</li></ul><pre><code class=“python”>1. 查看是否合乎业务需要文档2. 是否满足隐性需要</code></pre><ul><li>兼容性测试</li></ul><pre><code class=“python”>1. 零碎版本是否兼容: 安卓 原生零碎高低版本间是否兼容,例如安卓10.0的是否兼容9.0 二次开发的零碎, 比方小米的MIUI零碎间的兼容、华为的EMUI高低版本间兼容性是否良好 ios 版本间的兼容是否良好2. 分辨率是否兼容3. 网络状况 弱网测试、WIFI限速、更改网络app模式</code></pre><ul><li>异样测试</li></ul><pre><code class=“python”>1.热启动利用 [1]app至于后盾时是A页面,切换到前台,还是A页面,还是初始化页面 [2]app长时间置于后盾,切换到前台,还是A页面,还是初始化页面,解体/闪退2.网络切换和中断复原 [1]4g-2g wifi-4g,保障app可用,业务失常 [2]wif-断网-wifi 断点续传 下载利用5M 下载了3M断网,再次联网,持续以后地位下载3.电话和信息中断复原 [1]电话:看视频,打电话30分钟,切换为持续查看地位 [2]短信:玩游戏 4.降级装置卸载测试 [1]降级测试 邻近版本升级 1.0—>1.1—>1.2 跨版本升级 1.0—->2.0 [2]装置测试 首次装置 笼罩装置 高版本—>低版本 胜利 低版本—>高版本 不容许 卸载后装置 [3]卸载测试 首次卸载 卸载—>装置—>卸载 5.健壮性测试 手机资源耗费 流量耗费 解体复原等测试</code></pre><h5>2.2 app自动化测试</h5><pre><code class=“python”>通过场景和数据的预设,把以人为驱动的测试行为转化为机器执行的一种过程.⚠ 留神: 并不是所有性能都能进行自动化.</code></pre><h5>2.3 app平安测试</h5><pre><code class=“python”>通过平安测试技术,保障app尽可能的不存在安全漏洞.</code></pre><p>更多挪动测试参考:</p><ul><li>挪动测试的分类</li></ul><h2>挪动端测试环境搭建</h2><p>挪动端自动化测试的根底环境配置</p><ul><li><ol><li>装置Java环境</li></ol></li></ul><pre><code class=“python”>Android利用为例解说,须要装置java环境</code></pre><ul><li><ol><li>SDK环境</li></ol></li></ul><pre><code class=“python”>Android依赖SDK的环境</code></pre><ul><li><ol><li>模拟器环境</li></ol></li></ul><pre><code class=“python”>思考大家连贯真机不不便,所以采纳模拟器代替</code></pre><h4>1. Wind 装置java环境</h4><p>装置步骤:</p><h5>1.1 装置jdk1.8</h5><pre><code class=“python”>运行jdk-8u151-windows-x64.exe⽂件,默认装置即可(例如我的装置⽬录:C:\Program Files\Java\jdk1.8.0)</code></pre><h5>1.2 配置java环境变量(windows为例)</h5><pre><code class=“python”>1.进入我的电脑–>属性–>高级零碎设置—>环境变量2.在零碎变量下点击新建 -> 变量名: JAVA_HOME -> 变量值: C:\Program Files\Java\jdk1.8.0</code></pre><h5>1.3 验证环境变量</h5><pre><code class=“python”>1.关上dos 快捷键win+r2.输出java -version</code></pre><p>呈现下图,阐明装置胜利</p><p></p><h4>2. Mac 装置java环境</h4><p>将下载的osx版的java环境默认进行装置,而后进行一下配置:</p><pre><code class=“python”>1.进入命令行, vim ~/.bash_profile 2.# set jdk1.8 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME CLASSPATH export PATH</code></pre><p>启动终端,输出java -version查看是否失常启动</p><p></p><h4>1. Window 装置sdk(Androi须要的环境)</h4><p>装置步骤:</p><h5>1.1 解压Android sdk 文件夹</h5><p><strong>留神:门路中不要有中文, 确保文件夹下有一下两个文件</strong></p><p>如下图: </p><h5>1.2 配置到零碎环境变量下.</h5><pre><code class=“python”>SDK环境变量配置(Windowns7为例) 1.进入我的电脑 -> 属性 -> 高级零碎设置 -> 环境变量 2.在零碎变量下点击新建 -> 变量名: ANDROID_HOME -> 变量值: D:\android-sdk -> 点击确定按钮 3.在零碎变量下找到零碎的path变量,最初增加:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;(最后面是一个分号,如果path变量最初已有分号,可不必增加) -> 点击确定按钮</code></pre><h5>1.3 验证环境变量是否配置胜利</h5><ul><li>在dos中输出adb指令,如下图配置胜利 </li><li><p>在dos中输出<strong>android</strong>指令 呈现Android sdk manager对话框 </p><blockquote>留神:**</blockquote></li></ul><p><strong>如果sdk中曾经有build-tools和platform-tools文件夹,就不须要再进行下载安装了</strong></p><h4>2. Mac 装置android sdk</h4><ol><li>把下载的android sdk macosx版本的解压到指定目录(我的解压到//Library/Java/)</li></ol><p></p><blockquote><strong>留神:</strong></blockquote><p><strong>如果sdk没有build-tools和platform-tools文件夹,要把提供的文件夹挪动到此处, 前面只须要配置环境变量即可,不须要下载了</strong></p><ol start=“2”><li>把sdk配置到零碎环境变量</li></ol><pre><code class=“python”>1.进入命令行, vim ~/.bash_profile2.# set android ANDROID_HOME=电脑寄存的门路/android-sdk-macosx PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools export ANDROID_HOME export PATH</code></pre><ol><li>验证是否胜利</li></ol><p>验证<strong>adb命令</strong>: 在终端输出adb,呈现adb版本信息阐明胜利</p><p></p><p>验证android是否配置胜利: 在终端输出<strong>android</strong>, 呈现此图片说明胜利</p><p></p><h4>3、抉择不同版本的的Android零碎进行下载</h4><p><strong>留神</strong>:</p><blockquote>因为安卓镜像在国外,最好更换国内的镜像</blockquote><p>步骤</p><ul><li>在弹出的android sdk manager页面,点击tools, 下啦框点击options</li></ul><p></p><ul><li>在弹出的对话框输出国内惊现的地址和端口号.</li></ul><p></p><pre><code class=“python”>镜像地址列表(也能够网上查找最新的): 中国科学院开源协会镜像站地址: IPV4/IPV6: mirrors.opencas.cn 端口:80 IPV4/IPV6: mirrors.opencas.org 端口:80 IPV4/IPV6: mirrors.opencas.ac.cn 端口:80 上海GDG镜像服务器地址: sdk.gdgshanghai.com 端口:8000 北京化工大学镜像服务器地址: IPv4: ubuntu.buct.edu.cn/ 端口:80 IPv4: ubuntu.buct.cn/ 端口:80 IPv6: ubuntu.buct6.edu.cn/ 端口:80 大连东软信息学院镜像服务器地址: mirrors.neusoft.edu.cn 端口:80</code></pre><h3>1. window装置andorid模拟器</h3><h4>1. 模拟器Genymotion装置</h4><pre><code class=“python”>1.执行genymotion-2.11.0-vbox.exe(是一个汇合程序,蕴含genymotion和virtualbox) -> 不须要更改配置,间接下一步默认装置2.装置完genymotion持续期待,会提醒装置virtualbox,持续装置,期间会提醒装置oracle插件,全副容许装置3.装置实现后会在桌面展现genymotion和virtualbox两个图标</code></pre><p></p><blockquote>留神:</blockquote><p>装置其余的模拟器也能够 ,装置胜利就能够.(比方MuMu 逍遥 夜神 雷电)</p><h4>2. Mac 下装置模拟器</h4><p>mac下装置要装两个dmg文件: genymotion-2.12.1.dmg和VirtualBox-5.2.26-128414-OSX.dmg</p><pre><code class=“python”>1.装置genymotion-2.12.1.dmg-》不必更改配置,默认装置就行2.装置VirtualBox-5.2.26-128414-OSX.dmg -》 不必更改配置间接装置就行3.装置后也会看到下面三个利用</code></pre><h4>3.虚拟机镜像导入</h4><pre><code class=“python”>1.关上virtualbox2.进入virtualbox -> 治理 -> 导入虚构电脑3.点击文件抉择(Samsung Galaxy S6 - 5.1.0 - API 22 - 1440x2560.ova) -> 点击下一步4.勾选 从新初始化所有网卡的MAC地址5.点击导入按钮 -> 期待倒入实现6.virtualbox列表会展现如下图圈出的选项</code></pre><p></p><h4>4. 启动模拟器</h4><p>在genymotion主界面点机start按钮.启动胜利就会显示下图</p><p></p><h4>5. 装置利用apk</h4><p>安卓模拟器启动起来后,咱们就能够装置要进行测试的利用了.装置胜利后,咱们的环境搭建就全副完结.</p><p><strong>装置办法:</strong></p><ul><li>adb命令行(前面解说)</li><li>间接拖拽要装置的apk到模拟器上,主动装置</li></ul><h4>注意事项</h4><h5>1. 装置ARM插件</h5><p><strong>装置某些利用apk时因为apk性能比拟丰盛,然而模拟器自带的不反对这些性能,所以要装置arm插件,来满足apk的应用</strong>.</p><p><strong>(1)、拖动ARM_Translation_Lollipop_20160402.zip到已启动的android虚拟机上</strong></p><p>须要下载对应版本的插件、咱们应用的是adnroid5.1 所以应用的是这个</p><p><strong>(2)点击提醒的ok按钮</strong></p><p></p><p><strong>(3)、再次点击提醒的ok按钮,重启模拟器既能够装置apk文件</strong></p><p></p><h5>2. 应用其余版本的模拟器的步骤</h5><p><strong>(1)、须要到genymotion官网上注册一个账号</strong></p><p><strong>(2)、进入genymotion界面,点击add按钮、会弹出登录对话框、输出注册的账号</strong></p><p></p><p><strong>(3)、登录胜利后能够抉择对应不同的android版本、手机型号进行装置</strong></p><p></p><p></p><p></p><h2>ADB常用命令</h2><h3>学习指标</h3><ul><li>把握罕用的ADB命令</li></ul><h4>1. ADB命令简介</h4><pre><code class=“python”>ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢? 因为adb是一个规范的C/S构造的工具, 是要连贯开发电脑和调试手机的蕴含如下几个局部: 1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。 2.Daemon守护过程, 运行在调试设施中, 即的调试手机或模拟器。 3.Server端, 作为一个后盾过程运行在开发机器中, 即你的开发PC机. 用来治理PC中的Client端和手机的Daemon之间的通信。</code></pre><h4>2. 常用命令</h4><ul><li>adb 帮忙</li></ul><pre><code class=“python”>adb –help</code></pre><ul><li>启动adb 服务</li></ul><pre><code class=“python”>adb start-server</code></pre><ul><li>敞开adb 服务</li></ul><pre><code class=“python”>adb kill-server</code></pre><ul><li>获取设施号</li></ul><pre><code class=“python”>adb devices</code></pre><ul><li>获取零碎版本</li></ul><pre><code class=“python”>adb shell getprop ro.build.version.release</code></pre><ul><li>发送文件到手机</li></ul><pre><code class=“python”>adb push 电脑端⽂件门路/须要发送的文件,手机端存储的门路adb push C:\Users\win\Desktop\xx.png /sdcard</code></pre><ul><li>从手机拉取文件</li></ul><pre><code class=“python”>adb pull 手机端的门路/拉取文件名 电脑端存储文件门路adb pull /sdcard/xx.png C:\Users\win\Desktop</code></pre><ul><li>查看手机运行日志</li></ul><pre><code class=“python”>adb logcat</code></pre><ul><li>进入到手机终端</li></ul><pre><code class=“python”>adb shell</code></pre><ul><li>获取app启动包名和启动名(⚠手机须要先关上对应app)</li></ul><pre><code class=“python”>1.Mac/Linux: ‘adb shell dumpsys window windows | grep mFocusedApp’2.在 Windows 终端运⾏ ‘adb shell dumpsys window windows | findstr mFocusedApp’</code></pre><ul><li>装置app到手机</li></ul><pre><code class=“python”>adb install 门路/xxx.apk</code></pre><ul><li>卸载手机app</li></ul><pre><code class=“python”>adb uninstall app</code></pre><ul><li>获取app启动工夫</li></ul><pre><code class=“python”>adb shell am start -W 包名/.启动名</code></pre><p>`python<br/>adb shell getprop ro.build.version.release</p><pre><code>* 发送文件到手机</code></pre><p>adb push 电脑端⽂件门路/须要发送的文件,手机端存储的门路</p><p>adb push C:\Users\win\Desktop\xx.png /sdcard</p><pre><code>* 从手机拉取文件</code></pre><p>adb pull 手机端的门路/拉取文件名 电脑端存储文件门路</p><p>adb pull /sdcard/xx.png C:\Users\win\Desktop</p><pre><code>* 查看手机运行日志</code></pre><p>adb logcat</p><pre><code>* 进入到手机终端</code></pre><p>adb shell</p><pre><code>* 获取app启动包名和启动名(⚠手机须要先关上对应app)</code></pre><p>1.Mac/Linux: ‘adb shell dumpsys window windows | grep mFocusedApp’<br/>2.在 Windows 终端运⾏ ‘adb shell dumpsys window windows | findstr mFocusedApp’</p><pre><code>* 装置app到手机</code></pre><p>adb install 门路/xxx.apk</p><pre><code>* 卸载手机app</code></pre><p>adb uninstall app</p><pre><code>* 获取app启动工夫</code></pre><p>adb shell am start -W 包名/.启动名</p></article>