PO模式自动化测试用例
PO设计模式是自动化测试中最佳的设计模式,主要体现在对界面交互细节的封装,在实际测试中只关注业务流程就可以了。
相较于传统的设计,在新增测试用例后PO模式有如下优点:
1、易读性强
2、可扩展性好
3、可复用性强
4、可维护性好
封装的代码示例,来吧,展示:https://github.com/hanshoukai/appium_automation
测试框架封装改造
一、appium源码
appium server包括如下:
•Node.js 系列包
•adb shell
•ChromeDriver
二、Appium Android 自动化流程:
打印appium日志:appium -g <log file path>
日志内容先后为:
1、shell 命令
2、WebDriver 请求
3、ChromeDriver 日志
三、调试分析方法
Appium Log清晰记录了所有的请求和结果以及底层的一些错误堆栈
分析界面数据:
1、使用 getPageSource 获取界面的完整 DOM 结构
2、利用 XPath 获取所有匹配的元素
脚本外调试:
1、借助于 curl 命令从脚本外探测界面数据
2、用浏览器实时查看UI布局
查看所有的sessions
查看其中一个session的界面元素
四、Appium 原理与 JSONWP 协议分析
WebDriver 协议与手工模拟
WebDriver 协议基础知识:https://w3c.github.io/webdriver
session_id 获取:
session_id=`curl http://127.0.0.1:4723/wd/hub/sessions | awk -F\" '{print $8}' `
element id 获取:
curl -X POST http://127.0.0.1:4723/wd/hub/session/$session_id/elements --data-binary '{"using":"xpath","value":"//*[@class=\"android.widget.Toast\"]"}' -H "Content-Type: application/json;charset=UTF-8"
element_id = 301c744b-57a0-4a9e-b8c1-5460d62be5fd(这一串为上curl命令打印出来的element的id)
元素属性获取:
curl http://127.0.0.1:4723/wd/hub/session/$session_id/element/$element_id/attribute/text
元素动作:
curl -X POST http://127.0.0.1:4723/wd/hub/session/$session_id/element/$element_id/click
底层引擎如下:
•Uiautomator 安卓设备(https://github.com/appium/appium-uiautomator2-driver 及 https://github.com/appium/appium-uiautomator2-server)
•WDA 苹果设备(https://github.com/appium/WebDriverAgent)
•selenium 浏览器
appium client:Python、Java等
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
文档获取方式:
加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取