appium是一个开源的移动端自动化测试框架,可以测试原生的、混合的以及移动端的web项目,appium是跨平台的,可以运行在osx、windows以及linux桌面系统上,用来测试ios、android应用
Selenium
2004年,Thoughtworks的员工Jason Huggins编写了一个名为JavaScriptTestRunner的测试工具
后来多人修改架构为独立服务模式,开发并推出了Selenium RC和Selenium-IDE
Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样
这个工具的主要功能包括:
- 测试与浏览器的兼容性
测试你的应用程序看是否能够很好的工作在不同浏览器和操作系统之上
- 测试系统功能
创建回归测试检验软件功能和用户需求
框架底层使用JavaScript模拟真实用户对浏览器进行操作
1.x版本的Selenium需要启动一个Server,将操作Web元素的API调用转化为一段段Javascript,然后在浏览器中注入这段Javascript
但是这样会有缺点
- 速度慢
- 依赖于浏览器对注入的Javascript的正确解释
于是有了2.x版本的Selenium版本
2.x版本的Selenium整合了webdriver和原来的Selenium,把多个浏览器原生的API封装成一套更加面向对象的Selenium webdriver API
这样做的好处是速度提高,且调用的稳定性交给了浏览器
2.x的Selenium也可以叫Webdriver
Appium
为什么讲appium前,提到selenium呢?
Appium是基于webdriver协议添加了对移动设备自动化api扩展而成的,这样做的好处是避免重复造轮子
appium的框架是什么样的?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TrIBzpVz-1619341258722)(https://gitee.com/jasonj333/picture/raw/master/2021-4-20/1618906804255-appium.png)]
appium使用client-server架构,appium-client以脚本的形式,支持多种语言
appium-server需要安装appium-server程序,用来监听端口上来自appium-client的命令
appium-server已经很久没更新过版本了,目前可以用appium-desktop代替
UiAutomator是谷歌推出的一款用Java编写的UI测试框架,可以使用UiAutomator框架提供的API来对安卓系统进行一系列的自动化测试操作
Bootstrap是Appium在初始化的时推送到Android手机上的一个UiAutomator测试脚本,该脚本的唯一一个测试方法所做的事情是在手机端开启一个SocketServer(通信模块),用来监听Appium从PC端过来的命令发送给UiAutomator来执行处理
工作原理
appium-server启动并监听在某个端口,接收测试脚本发来的命令请求,再将请求发送给中间件Bootstrap.jar,中间件Bootstrap.jar会把appium的命令转换成UiAutomator的命令,发送给UiAutomator,UiAutomator对android系统进行操作
安装
更多内容,可以在汽车网络诊断通信上看到