Appium/Selenium 自动化高阶测试

Hey 各位读者朋友好,

前几年一直停更,2019年会重新更新该blog,并且希望得到各位读者的反馈,以及各种测试的业务合作机会。本文将会深入简出的介绍最常用的e2e自动化测试框架, Appium以及Selenium。

 

1. Appium & Selenium 框架基础

两个框架的工作原理基本一致,两者均分为server端和client端,需要注意的时,appium的server端是node.js编写, selenium的server端是java编写,而客户端支持很多语言。两者的客户端和服务端的通信均是通过restful service,并且使用同样的通信protocl, 即 json wire protocol. 有兴趣的朋友参见 https://w3c.github.io/webdriver/ 。 因此在使用appium和selenium时,我们可以认为他们是同一类产品,仅仅是appium针对手机类产品,而selenium针对网页端。

2. Appium 与 Selenium(Remote driver) 比较 

由于csdn特别不好用,无法上传图片,我这里简单以文字描述

Appium Client --> Appium Server --> Appium Remote Server(手机内) --> UIAutomator/XCUITest/Espresso桥接

Selenium Client --> Selenium Server --> ChromeDriver/FirefoxDriver/IEDriver桥接

由以上两个结构可以看出,两者结构类似,并且使用同样的protocl,完全可以抽离成一个server端的shared层

 

3. Appium/Selenium 共用层 - Selenium-Grid

首先请各位读者注意,selenium-grid会有很多的不稳定性,该文章仅仅基于开源项目做解释

Appium Client & Selenium Client -->  Selenium Grid --> Appium Server & Selenium Server  (后面与上文一致)

 

这样也就解决了以下问题:

1. 分布式测试执行的结构,测试可以并行在多个机器上执行

2. 机器共享, 即将所有手机/浏览器统一架构,统一管理,只expose出selenium-grid的接口

3. 降低维护成本, 即自动化框架仅关心如何编写测试, 测试平台仅关心如何执行测试

 

这样也就是很多云测平台在提到的私有测试云的大体架构,当然整个框架涉及到大量的虚拟化和虚拟化设备管理,将在下次更新。

 

烦请各位读者向我提出宝贵的意见和建议,例如您关心的自动化测试中哪一类技术,更例如您公司的自动化的实际情况,谢谢。

 

可以联系微信: robin9257

谢谢

你可能感兴趣的:(软件测试,自动化测试)