自动化测试测试框架封装改造

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-driverhttps://github.com/appium/appium-uiautomator2-server)

•WDA 苹果设备(https://github.com/appium/WebDriverAgent)

•selenium 浏览器

appium client:Python、Java等

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关推荐
卑微的Coder2 分钟前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
乐言36126 分钟前
如何解决Jmeter中的乱码问题?
jmeter
小突突突2 小时前
个人博客系统测试报告
运维·网络·功能测试
伊成4 小时前
一文详解Spring Boot如何配置日志
java·spring boot·单元测试
乐言3615 小时前
如何用Jmeter实现自动化测试?
运维·jmeter·自动化
程序员杰哥6 小时前
自动化测试基础知识详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
文人sec8 小时前
接口自动化测试设计思路--设计实战
python·https·单元测试·自动化·pytest
程序员小远1 天前
自动化测试与功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
神探阿航1 天前
HNUST软件测试B考前最终复习
软件测试·单元测试·hnust·期中考试
第三方软件测评1 天前
第三方软件测评中心分享:软件功能测试类型和测试工具
功能测试·测试工具