不是小孩子,Selenium和Appium我都要

首先,cmd----->pip show selenium可以查看Selenium的版本号。

 

求同:

在Python的appium包中实际继承了Selenium,在测试过程中将移动端的页面元素当作是网页来处理,所以Selenium的定位方法也可以使用。

存异:

1)Selenium是web端的自动化测试工具;Appium是移动端的自动化测试工具。

2)Appium本身就是一个server;Selenium1的代理server是seleniumRC,Selenium3废弃了server,用webdriver来驱动浏览器。

不是小孩子,Selenium和Appium我都要

Selenium(测试脚本-浏览器的交互)

工作原理:

自动化测试脚本(乘客):自动化测试脚本发送请求给浏览器驱动(比如火狐驱动、谷歌驱动)

浏览器驱动(出租车司机):接收并解析这些请求,然后转发给浏览器。

浏览器(出租车):接收指令,并执行指定的操作。

1)执行每一条Selenium脚本,都会创建并发送一个http请求给浏览器驱动。

2)浏览器驱动中包含了一个HTTP Server,用来接收这些http请求。

3)HTTP Server接收到请求后,根据请求来具体操控对应的浏览器。

4)浏览器执行具体的测试步骤。

5)浏览器将执行结果返回给HTTP Server。

6)HTTP Server又将结果返回给Selenium脚本。如果是错误的http代码,就会在控制台显示对应的报错信息。

 

Appium(测试脚本-Appium服务器-设备的交互)

不是小孩子,Selenium和Appium我都要

相关概念:

1)Appium Server

Appium Server是Appium的服务端,是测试脚本和设备端交互的桥梁,是一个使用Node.js实现的web接口服务。

通过cmd----->npm install -g appium安装,没有界面。

通过cmd----->appium启动。

2)Appium Desktop(前身是Appium GUI

Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序

http://appium.io/ 下载安装,有美观而灵活的用户界面,提供Appium自动化服务器的强大功能。

3)Appium Client

因为Appium是一个C/S结构,有服务端就肯定有客户端。客户端Appium Clients就是我们写测试脚本时导入的包,它会给服务端Appium Server发送请求会话以操作设备端的APP。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。

Python中通过cmd----->pip install Appium-Python-Client安装。

 

执行思路:

1)启动设备

2)启动 appium-deskstop 服务器

3)使用脚本语言连接 appium 和 python

4)借助appium-python-client, 将命令发送给appium服务器

5)appium服务器接收指令并传送命令给指定设备

6)执行命令操作

 

工作原理:

1)Appium Client 是我们编写的 Webdriver 脚本,中间是 Appium 启动 Server (默认监听 4723 端口 )。Appium Client 向 Appium Server 发送命令,Appium Server 解析命令并转发给Bootstrap.jar。

2)首先,Bootstrap 是 Appium 运行在安卓目标测试机上的一个 UiAutomator 测试脚本,所以 Appium 命令可以转换成 Uiautomator 命令。其次,Bootstrap是一个socket服务器,专门监听4723端口获得 Appium 发送的连接请求和命令数据,并把 Appium 命令转换成 Uiautomator 命令来让 Uiautomator 处理。

3)Bootstrap 将执行结果返回给 Appium Server,Appium Server 再将结果返回给 Appium Client。