Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DDDDanny/Hamster

Repository files navigation

一个基于PO模型的移动端应用UI自动化测试框架


介绍

Hamster是一个基于PO模型的移动端应用UI自动化测试框架。他是基于uiautomator2(服务Android端)和facebook-wda(服务IOS端)来搭建的。为了能够更好的进行元素定位以及解决一些无法定位的元素,我引用了图片识别以及OCR技术来辅助进行元素定位,因为有了它们的加入,Hamster已无所不能💪

文件目录

├─.gitignore ----------- // Git Ignore
├─Config --------------- // 配置文件
│ └─SysConfig.ini ------ // 系统配置文件
├─Core ----------------- // 核心模块
│ ├─Driver.py ---------- // 驱动器
│ ├─Hamster.py --------- // Core Hamster
│ ├─HamsterIOS.py ------ // Core Hamster IOS
│ └─__init__.py 
├─Data ----------------- // 测试数据
│ └─__init__.py 
├─Images --------------- // 图片信息
│ └─__init__.py 
├─README.md 
├─Report --------------- // 测试报告
│ └─.black 
├─Run.py --------------- // 执行入口
├─Screenshot ----------- // 错误截图
│ └─__init__.py 
├─Test ----------------- // 测试用例PO
│ ├─Page --------------- // Page层
│ │ ├─Demo.py ---------- // Page元素
│ │ ├─EleConfig.ini ---- // 元素定位
│ │ └─__init__.py 
│ ├─Process ------------ // 业务层
│ │ ├─Demo.py ---------- // 业务层代码
│ │ └─__init__.py 
│ ├─TestCase ----------- // 用例层
│ │ ├─__init__.py 
│ │ ├─conftest.py ------ // 业务注册中心
│ │ └─test_Demo.py ----- // 测试用例
│ ├─__init__.py 
│ └─conftest.py -------- // 全局Conftest
├─Utils 
│ ├─CatchError.py ------ // 捕获Error
│ ├─EleAnalysis.py ----- // 元素解析
│ ├─GlobalVal.py ------- // 全局变量
│ ├─ImageDiscern.py ---- // 图片识别
│ ├─Log.py ------------- // Logger
│ ├─OCRDiscern.py ------ // OCR识别
│ ├─ReadConfig.py ------ // 读取配置文件
│ └─__init__.py 
├─conftest.py ---------- // 注册Marks
└─requirements.txt ----- // 依赖包

元素定位

目前元素定位有三种途径:

  1. 通过uiautomator2和facebook-wda提供的元素定位接口进行定位
  2. 通过图片识别进行定位(ImageDiscern.py)
  3. 通过OCR文字识别进行定位(OCRDiscern.py)

第一种途径用的是最多的,绝大多数的元素能够被定位到

第二和第三种途径,定位到元素后会返回元素所在的坐标,再通过点击坐标进行点击

测试结果

可以通过对pytest来生成的XML文件进行解析获取结果数据,再利用Jinja来生成自己想要的测试报告

ToDo List

作为框架来说,Hamster还远远不够完美,为了让Hamster更加优秀,希望有兴趣的朋友能加入进来,能够提出一些宝贵的建议,如果能和我一起参与开发那就再好不过了!

  • 提供默认测试报告
  • 更轻量级
  • ......

更加详细的内容请关注我的博客:MintBlue

特别感谢

uiautomator2

WDA

About

Mobile Automation Testing Framework

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages

AltStyle によって変換されたページ (->オリジナル) /