人生贵在坚持!

【每日一积累】web端和app端自动化测试

上一篇 / 下一篇  2019-01-21 09:20:27 / 个人分类:appium

appnium:是一个移动端的自动化框架

appnium工作原理:appnium会首先开启一个监听4723端口的server,接收测试脚本(WebDriver script:我们的测试脚本(java or python)发送过来的对应请求,再将对应的请求发送给中间件Bootstrap.jar(注意这里的请求不是整个脚本文件,而是对应的命令请求)。

Bootstrap.jar监听4724端口由appium发送过来的相关请求,并且将请求转换成UiAutomator可以识别的命令发给UiAutomator进行处理。

Android上使用了instrumentation和uiautomator两套技术。iOS使用uiautomation。所以appnium可以同时支持Android和iOS。

-------------------------------------------------

-------------------------------------------------

selenium:Selenium是ThoughtWorks公司的一个强大的开源Web功能测试工具系列,采用Javascript来管理整个测试过程,包括读入测试套件、执行测试和记录测试结果。

Selenium 是一种 Web 应用的自动测试工具,通过模拟用户对 Web 页面的各种操作,可以精确重现软件测试人员编写的 Test Cases 步骤。Selenium 包含三个工具:Selenium-IDE,Selenium-RC 以及 Selenium-Core。

其中,Selenium-Core 是驱动 Selenium 工作的核心部分,作为一个用 JavaScript 编写的测试引擎,它可以操作 Web 页面上的各种元素,诸如:点击按钮、输入文本框,以及断言 Web 页面上存在某些文本与 Web 元素等。

Selenium-IDE 是一个 Firefox 插件,能够录制回放用户在 Firefox 中的行为,并把所记录的 Selenese (Selenium Commands) 转化为Java/C#/Python/Ruby 等语言,在 Selenium-RC 中修改复用。对于较为复杂的 Test Cases,Selenium-IDE 的功能有限,往往用它录制大致的步骤,再转化为测试人员熟悉的编程语言,在此基础上完善,形成更为强大且灵活的 Selenium-RC Test Cases。

Selenium-RC(Selenium Remote Control)在 Web 浏览器与需要测试的 Web 应用间架设代理服务器(Selenium Server),使得 javascript 引擎与被测 Web 应用同源,绕开同源策略的限制(Same Origin Policy),进而取得对 Web 页面进行各种操作的权限。

 Selenium Grid 允许用户将测试案例分布在几台机器上并行执行。用户可以在一个集中控制点控制不同的环境。在不同的浏览器 / 系统组合上面更为容易的运行测试案例。允许用户更多的利用虚拟资源减少了维护测试环境的成本。

-------------------------------------------------

-------------------------------------------------

WebDriver的工作原理:

从技术上讲,有三个角色:

1. WebDriver API(基于Java、Python、C#等语言):对于java语言来说,就是下载下来的selenium的Jar包,比如selenium-java-3.8.1.zip包,代表Selenium3.8.1的版本

2. 浏览器的驱动(browser driver):每个浏览器都有自己的驱动,均以exe文件形式存在。比如谷歌的chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe

3. 浏览器:浏览器当然就是我们很熟悉的常用的各种浏览器。

那在WebDriver脚本运行的时候,它们之间是如何通信的呢?

1 对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动;

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

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

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

5 浏览器将步骤执行结果返回给HTTP Server;

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

-------------------------------------------------
-------------------------------------------------
WSDL: Web Service Description Language
XML: Extensible Makeup Language
SOAP: Simple Object Access Protocal




TAG:

 

评分:0

我来说两句

Open Toolbar