selenium分布式执行测试用例

selenium Grid只提供多系统,多浏览器的执行环境,selenium Grid本身并不提供并行的执行测试用例,以下是使用多线程技术结合
selenium Grid实现分布式并行地执行测试用例
启动 selenium server
在本机打开两个命令提示符窗口
本机启动一个主hub和一个node节点,端口号分别为4444,5555,本机IP地址为:xxx.xxx.xxx.xxx
C:\selenium>java -jar selenium-server-standalone-2.47.0.jar -role hub
C:\selenium>java -jar selenium-server-standalone-2.47.0.jar -role node -port 5555
启动一个远程node(设置端口号为6666),IP地址为:xxx.xxx.xxx.xxx
fnngj@fnngj-VirtualBox:~/selenium$ java -jar selenium-server-standalone-2.47.0.jar -role node -port 6666
-hub http://172.16.10.66:4444/grid/register
运行测试脚本

from threading import Thread
from selenium import webdriver
from time import sleep,ctime


#测试用例
def test_baidu(host,browser):
    print('start:%s' % ctime())
    print(host,browser)
    dc = {'browserName':browser}
    driver = webdriver.Remote(command_executor=host,
                        desired_capabilities=dc)
    driver.get('http://www.baidu.com')
    sleep(3)
    driver.find_element_by_id("kw").send_keys(browser)
    driver.find_element_by_id("su").click()
    driver.close()

if __name__ == '__main__':
    # 启动参数(指定运行主机与浏览器)
    lists = {
        'http://127.0.0.1:4444/wd/hub':'chrome',
        'http://127.0.0.1:5555/wd/hub':'internet explorer',
        'http://xxx.xxx.xxx.xxx:6666/wd/hub':'firefox'     #远程节点
    }
    threads = []
    files = range(len(lists))
    #创建线程
    for host,browser in lists.items():
        t = Thread(target=test_baidu(),args=(host,browser))
        threads.append(t)
    #启动线程
    for i in files:
        threads[i].start()
    for i in files:
        threads[i].join()
    print('end: %s' % ctime())
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值