前言:

大概有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

欢迎转载与共享

  

最新文章

  1. 写一个适应所有环境的js模块
  2. enumerate用法
  3. 莫比乌斯环-vtkTriangleStrip
  4. ubuntu14.04下安装python3.4.2
  5. win2008下安装SQL SERVER 2005出现IIS功能要求 警告解决方案
  6. 用puthivestreaming把hdfs里的数据流到hive表
  7. 细数Qt开发的各种坑(欢迎围观)
  8. 大概了解了flexbox
  9. centos 5.5 安装 lnmp
  10. 《EnterLib PIAB深入剖析》系列博文汇总_转
  11. Android 应用启动速度优化
  12. Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目
  13. webservice2-wsimport的使用
  14. 【Alpha】——Fourth Scrum Meeting
  15. docker与虚拟机的区别
  16. C# Note19: Windows安装包制作实践
  17. docker 基础之私有仓库
  18. SQLSERVER 数据量太大,重启服务器后,数据库显示正在恢复
  19. fastTime从后台传过来显示格式的处理
  20. 洛谷P3721 [AH2017/HNOI2017]单旋(线段树 set spaly)

热门文章

  1. I-Just Jump_2019牛客暑期多校训练营(第八场)
  2. codeforces 733D Kostya the Sculptor(贪心)
  3. poj3666 Making the Grade(基础dp + 离散化)
  4. Git的合并
  5. pyppeteer的使用
  6. c++调试在容器释放内存时报Unknown Signal 或 Trace/breakpoint trap异常
  7. AtomicInteger 一个提供原子操作的Integer类
  8. Redis压缩包win10快速启动之记录一
  9. JavaScript中的this到底是怎样的?
  10. JAVA多线程高并发面试题总结