其中主要的目录和文件为:

/MPTestCases ----------- 存放测试用例

/errorScreenShot ------------ 用例执行失败生成的错误截图

startTest.py ----------- 配置了要执行的测试用例

start.cmd ----------- 用于双击启动测试(windows下)

startTest.py代码如下:

python
import unittest
import sys
import os curDir = sys.path[0] #windows下的写法
sys.path.append(curDir + '\\MPTestCases\\login')
sys.path.append(curDir + '\\MPTestCases\\shoot')
sys.path.append(curDir + '\\MPTestCases\\settingPage')
sys.path.append(curDir + '\\MPTestCases\\hotPage')
sys.path.append(curDir + '\\MPTestCases\\myPage')
sys.path.append(curDir + '\\MPTestCases\\detailPage') #mac下的写法
sys.path.append(curDir + '/MPTestCases/login')
sys.path.append(curDir + '/MPTestCases/shoot')
sys.path.append(curDir + '/MPTestCases/settingPage')
sys.path.append(curDir + '/MPTestCases/hotPage')
sys.path.append(curDir + '/MPTestCases/myPage')
sys.path.append(curDir + '/MPTestCases/detailPage') import MPlogin
import MPshoot
import MPsetting
import MPHotpage
import MPHotpageBanner
import MPmypage
import MPdetailPage
import MPmypageSetUserInfo #MPlogin.suite("0")
#MPshoot.suite("0")
#MPsetting.suite("0")
#MPHotpage.suite("0")
#MPHotpageBanner.suite("0")
#MPmypage.suite("0")
#MPdetailPage.suite("0")
MPmypageSetUserInfo.suite("0")

我把测试用例都放在了MPTestCases目录下,一个大功能的测试用例都新建一个目录来存放测试用例

MPTestCases 目录下有一个common目录,用来存放测试用例中会用到的公共模块,例如初始化用例,或开屏广告,登录、退出登录等模块;用例里面需要用到的时候就直接调用;并且如果该功能有改动,只需要改一个地方就好了。

执行用例会生成一些错误截图,能够抓取到崩溃的截图;原理是每一个用例都用try ... except ... 包起来;一旦发生异常用例就会被判断执行失败;然后就在改执行失败的界面截图一张截图,截图的名字与用例的方法名相同;因此看截图就可以知道是哪个测试用例的那个方法发生了异常。如果程序崩溃了会有两种截图(1、带有xxx已停止运行的对话框截图 或者 2、截取到的图片为白屏或系统桌面)

同时用例执行完会生成一个log文件,对比错误截图和log文件即可定位到用例执行失败的原因

主要作用就是用来回归测试,验证UI或稳定的公共是否有异常

项目地址:https://github.com/liyuanhong/miaopaiTest

基于 appium 的 UI 自动化测试的更多相关文章

  1. 基于Appium的UI自动化测试

    为什么需要UI自动化测试 移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能.UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作 ...

  2. 基于appium的app自动化测试框架

    基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于web测试框架开发的 一.设备连接 (即构建 ...

  3. Python+appium+unittest UI自动化测试

    什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...

  4. django+appium实现UI自动化测试平台---构思版

             背景 UI自动化,在进行的过程中,难免会遇到平台化, 在实际的工作中,有的领导也会想要实现自动化测试的平台化.自动化平台化后,有了更为实际的成果, 在做UI自动化,很想吧现在的自动化 ...

  5. 软件测试自动化之- 基于反射的UI自动化测试框架 - UI Automation Test Framework

    测试自动化程序的任务 基于反射的ui测试自动化程序,要完成的6项任务: 通过某种方式从测试套件程序中运行待测程序(AUT: Applicaton Under Test),以便于两个程序之间进行通信 操 ...

  6. 基于Python3 + appium的Ui自动化测试框架

    UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...

  7. 基于Calabash-andriod的UI自动化测试(1)-环境和原理

    有时候,一些覆盖happy path的UI自动化还是很有用的.它的一些作用如下: 1.可以迅速实现端到端的功能回归,能够覆盖接口测试覆盖不到的一些地方,如GUI层和接口层的交互产生的问题. 2.非码农 ...

  8. Appium App UI 自动化测试理论知识

    (一)App自动化测试背景 随着移动终端的普及,手机应用越来越多,也越来越重要.App的回归测试用例数量越来越多,全量回归也越来越消耗时间.另外移动端碎片化严重(碎片化:兼容性测试,手机品牌多样.An ...

  9. 基于Appium的APP自动化测试基础--美团APP的实例

    转:https://blog.csdn.net/Tigerdong1/article/details/80159156 前段时间用一种流行语言,一个主流工具,一个实用框架,写了一个美团app自动化测试 ...

随机推荐

  1. 合并K个有序链表

    方法一:采用归并的思想将链表两两合并,再将两两合并后的链表做同样的操作直到合并为只有一个新的链表为止. 归类的时间复杂度是O(logn),合并两个链表的时间复杂度是O(n),则总的时间复杂度大概是O( ...

  2. 三.Python变量,常量,注释

    1. 运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码python d:t1.py 您已经 ...

  3. 【NOIP2017】逛公园 D1 T3

    记忆化搜索 跑一次反向的最短路求出MinDis(u,n)MinDis(u,n)MinDis(u,n) f[u][k]f[u][k]f[u][k]表示dis(u,n)<=MinDis(u,n)+d ...

  4. 什么是Java内存模型

    转载 : https://www.jianshu.com/p/bf158fbb2432 在知识星球中,有个小伙伴提了一个问题: 有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JV ...

  5. python 操作 elasticsearch-7.0.2 遇到的问题

    错误一:TypeError: search() got an unexpected keyword argument 'doc_type',得到不预期外的参数 解决方法:elasticsearch7里 ...

  6. CTF SSRF(服务器端伪造请求)

    目录 CTF SSRF(服务器端伪造请求) 一.概念 二.危害 三.漏洞挖掘与判断 四.相关函数 五.IP绕过 六.Gopher协议 1.使用限制 2.构造payload CTF SSRF(服务器端伪 ...

  7. TCP的连接如何知道对方已经异常断开

    断电的话,对方不会发送任何数据包过来,包括RST.主机无法得知.如果是TCP已经连接,有个定时器,会发送空包,sequence number不变.如果一直收不到ack,会断定对方已经无法通信,而释放系 ...

  8. 关于qemu的二三事(1)————qemu的特殊参数之monitor

    qemu作为一个十分重要的虚拟化工具,提供了丰富的功能/参数来支持虚拟化的各种操作. 下面仅就monitor这个参数或者说是功能来结合自己的实际体验来做个简要介绍. 如何进入qemu的monitor模 ...

  9. Sword C语言原子操作

    /* gcc内置原子操作 */ #include <stdio.h> /* 知识补充: gcc 4.1.2版本之后,对X86或X86_64支持内置原子操作.即不需要引入第三方库(如pthr ...

  10. 基于ifc数据的bim模型吊装模拟-1

    基于ifc数据的bim模型吊装模拟-1 IfcWallStandardCase    IfcColumn