Android 手机端自动化测试框架
前言:
大概有4个月没有更新了,因项目和工作原因,忙的手忙脚乱,趁十一假期好好休息一下,年龄大了身体还是扛不住啊,哈哈。这次更新Android端自动化测试框架,也想开源到github,这样有人使用才能慢慢完善。
思路:
因为手机app里也是一个个页面组成的,本质上和web没什么太大区别,所以可以使用selenium的以PageObject进行封装思路,简化后续用例维护等工作。此框架使用的仍然是基于openatx开源项目,结合allure测试报告,pytest单元测试框架,达到并支持
1.响应速度快(atx基于手机的agent代理接受http请求运行脚本)
2.测试用例可定制化(pytest单元测试框架,通过装饰器支持多种功能,包括错误重试,重复执行,设定用例顺序等一系列功能,可自行查阅pytest插件)
3.支持同网段下通过wifi直接运行测试,不用连上usb数据线
4.支持多手机并发执行测试(满足不同机型的统一脚本兼容性测试)
5.支持Jenkins自动生成测试报告(allure本身支持Jenkins的CI特性)
项目介绍:
APK_Package
此目录为手机包目录,可放置手机安装包
Base
此目录为核心目录
BaseDevicesInfo
此文件主要处理手机的一些信息获取,比如udid,电量,等方法封装
BasePage
此文件主要为通用的手机操作方法封装,比如滑动,查找元素等常规操作
BaseDecorator
此文件主要封装装饰器与错误截图,装饰器由用例调用,生成日志,添加错误截图到allure报告中
BaseInitPath
此文件主要为路径的静态方法
BaseLog
此文件主要为日志方法封装
BaseReadConfig
此文件主要为读取config文件方法封装
BaseRunCase
此文件集成了所有启动所需,多线程启动模式,邮件系统,压缩方法,日志等
BaseSentMail BaseZip
封装了邮件发送和压缩报告方法
Log Report
log为系统运行生成日志目录
report为测试完成后报告生成目录
PageObject
此目录为页面封装,通常在页面有调整时,只需调整此目录下的方法,不许逐条修改用例
TestSuite
此目录为测试用例集合
Tools
此目录中则是一些小工具,比如weditor支持编写脚本时的元素定位
未来展望
本框架为综合性测试框架设计思路,初步设想整合接口测试,性能测试,ui自动化测试
1 接口测试利用request第三方库,性能测试利用locust框架,也基于request库,这 样同一套请求,既可以满足于接口测试也可满足于性能测试。
2 UI自动化分web和移动端,思路全部基于PageObjects进行页面分层测试,便于优化 维护用例
Android端使用开源项目openatx的uiautomator2作为底层调用,区别与appium和macaca 的本地服务启动,通过手机端的agent代理,实现快速的脚本响应,而不需要繁琐的服务启动
IOS端也将使用openatx的facebook-wda作为底层调用,同样通过在ISO真机上安装 WebDriverAgent代理,来运行脚本
web端则使用selenium作为底层操作web页面元素
3 除性能测试外,接口和UI自动化测试全部可基于pytest单元测试框架进行设计,pytest 框架支持pytest的所有插件,包括失败重试,重复执行,用例排序,测试报告allure,用例 并发等
项目地址:
https://github.com/Grandlulu/GeneralAutoTest
欢迎转载与共享
Android 手机端自动化测试框架的更多相关文章
- H.264视频在android手机端的解码与播放(转)
随着无线网络和智能手机的发展,智能手机与人们日常生活联系越来越紧密,娱乐.商务应用.金融应用.交通出行各种功能的软件大批涌现,使得人们的生活丰富多彩.快捷便利,也让它成为人们生活中不可取代的一部分.其 ...
- 利用ddmlib 实现 PC端与android手机端adb forword socket通信(转)
上篇文章讲了PC与android手机连接的办法 ,通过java调用系统命令执行adb命令操作,实际上是一个比较笨的办法. 网上查阅资料,发现google 提供了ddmlib库 (adt-bundle\ ...
- Android手机端抓包方法
抓包准备 1. Android手机需要先获得root权限.一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得).在终端模拟器界面输入su并回车,若报错则说明未root, ...
- 手机端MVC-js框架-Gillie-中文版本
译者声明: 1.代码库发布在http://pablovallejo.github.io/gillie/ 2.查看API介绍直接戳这里看整理. Gillie是一个轻型MVC框架,受Backbone的启发 ...
- Fiddler 抓包工具怎么使用?怎么在Android手机端的APP抓包
https://blog.csdn.net/loner_fang/article/details/83309266 参考这个人的微博上有fiddler主要功能使用的步骤. 序章 Fiddler是一个蛮 ...
- PC端使用opencv获取webcam,通过socket把Mat图像传输到android手机端
demo效果图: PC端 android端 大体流程 android端是服务器端,绑定IP和端口,监听来自PC端的连接, pc端通过socket与服务器andorid端传输图片. 主要代码 andro ...
- android手机端保存xml数据
1.前面写的这个不能继续插入数据,今天补上,当文件不存在的时候就创建,存在就直接往里面添加数据. 2.代码如下: <pre name="code" class="j ...
- 手机端Zepto框架,利用swipejs插件做banner轮播图
一,HTML部分<div class="banner"> <div id="slider" class="swipe"&g ...
- serverSpeed是一个android手机端到服务器间udp/tcp对比测速软件
https://github.com/eltld/serverSpeed https://github.com/c-wind/serverSpeed https://github.com/PeterK ...
随机推荐
- 楼房重建 HYSBZ - 2957
楼房重建 HYSBZ - 2957 第一次写分块, 写了之后觉得真的是暴力的一比. 题解:先讲n分成 sqrt(n)块,记得补上末尾的, 然后就是对于每一次更新操作, 都重新的讲这个块里面的有效楼放入 ...
- hdu 4513(Manacher)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4513 题解:就是在Manacher判断回文串的过程中添加一条条件 Ma[i + dp[i] - 2] ...
- .gitignore文件失效的解决方案
通常在idea中,我们使用git进行项目管理的时候,一些不需要的文件如.idea,.target文件不需要上传至gitlab仓库,这时,就需要在项目中定义一个.gitignore文件,用来标识这些文件 ...
- 【Offer】[68] 【树中两个结点的最低公共祖先】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个树结点,求它们的最低公共祖先. [牛客网刷题地址]无 思路分析 该题首先要确定是否为二叉树,还要确定是否为二叉搜索树,是否有父指 ...
- SVN分支与主干合并
1.主干合并到分支 1在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步, 2.在/branches /MyProject上右键,依次选择”Tor ...
- H5实现扫描二维码功能
为了实现H5扫描二维码功能,我在网上找到了可用的代码:https://github.com/zhiqiang21/WebComponent/tree/master/html5-Qrcode 该程序能基 ...
- Django之模型层(2)
Django之模型层(2) 一.创建模型 实例:我们来假定下面这些概念,字段和关系. 作者模型:一个作者由姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...
- SSM框架学习笔记(一)
Spring框架 Spring :是一个开源框架,起初是为解决企业应用开发的复杂性而创建的,但是现在已经不止 企业级应用开发,Spring的核心就是提供了一个轻量级的控制反转和面向切面编程. SPri ...
- 《Java 8 in Action》Chapter 10:用Optional取代null
1965年,英国一位名为Tony Hoare的计算机科学家在设计ALGOL W语言时提出了null引用的想法.ALGOL W是第一批在堆上分配记录的类型语言之一.Hoare选择null引用这种方式,& ...
- change,Ringo题目
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...