Selenium Webdriver 3.X源码分析之DesiredCapabilities分布式测试解决方案

2019-09-19 16:13:20 浏览数 (1)

> Selenium Webdriver 3.X源码分析系列第7篇,该系列原则上会将整个源码分享一遍

在大家的实践当中,经常需要在不同的环境(浏览器)中执行测试,在selenium webdriver中如何来实现在不同的环境中执行测试脚本呢?

在selenium webdriver python驱动代码中提供了DesiredCapabilities类提供了相应的解决方案。

我们先看下DesiredCapabilities类定义中的文档说明

简单一句话:

基于selenium grid 构建分布式自动化测试,selenium server/selenium grid根据测试脚本构建的DesiredCapabilities参数来决定将测试脚本分发到哪台机器或设备进行测试。

一个简单的实例:

代码注释说明:

第1行:从selenium包导入了webdriver对象

第4行:设置本地的selenium grid地址,如果你的selenium grid在其他机器启动,请使用对应的ip和端口

第7-9行:构建了一个windows 10 firefox的desiredcapabilities对象,即将测试脚本分发至win10 firefox的环境运行

第12行:启动远程的webdrive服务

划重点:应该讲在需要一个相对复杂的测试环境时,才需要应用到DesiredCapabilities类提供的解决方案,尤其是需要分布式测试环境时。

下面我们看下DesiredCapabilities类提供了哪些环境:

基本上我们用的的各种浏览器、设备均有覆盖到,下面看看具体的配置源码:

一般而言,我们需要指定browserName、version、platform即可

最后总结下,在如下所示的分布式复杂环境里

是必须使用到DesiredCapabilities类提供的解决方案的。

0 人点赞