前言:

大概有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特性)

 

项目介绍:

android chart架包 android test 框架_封装

 

 APK_Package

此目录为手机包目录,可放置手机安装包

Base

此目录为核心目录

android chart架包 android test 框架_android chart架包_02

 

 

  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