python多线程执行测试用例_Python多线程应用于自动化测试操作示例

本文实例讲述了Python多线程应用于自动化测试操作。分享给大家供大家参考,具体如下:

多线程执行测试用例

实例:

import threading

from time import sleep,ctime

from selenium import webdriver

#测试用例1

def test_baidu(browser,search):

print("开始,现在时间是%s"%ctime())

print("浏览器是%s"%browser)

if browser =="ff":

driver = webdriver.Firefox()

elif browser =="chrome":

driver = webdriver.Chrome()

elif browser =="ie":

driver =webdriver.Ie()

else:

print("浏览器输入错误!")

driver.get(r"http://www.baidu.com")

driver.implicitly_wait(5)

driver.find_element_by_xpath("//*[@id='kw']").send_keys(search)

driver.find_element_by_id("su").click()

sleep(2)

driver.quit()

if __name__ =="__main__":

#定义字典存放test_baidu函数的参数

dicts = {"ff": "python", "chrome": "selenium", "ie": "unittest"}

#创建空列表存放线程

threads =[]

#遍历字典,并把线程append进threads

for browser,search in dicts.items():

t = threading.Thread(target=test_baidu,args=(browser,search))

threads.append(t)

#把字典内容索引替代

file = range(len(dicts))

#启动线程

for i in file:

threads[i].start()

#守护线程

for i in file:

threads[i].join()

测试结果:

201812683819048.png?201811683846

由测试结果得到:多线程同时开始执行测试用例,大大缩小测试总时间。

多线程结合分布式执行测试用例

Selenium Girl 只是提供了多操作系统、多浏览器的执行环境,但不提供并行执行测试用例,Selenium Girl只能现在一个系统或浏览器上执行完测试用例外再从另一个操作系统或浏览器上执行测试用例。

启动Selenium server

在本机启动一个主hub和一个node节点:本机IP地址(192.168.0.101),节点端口4444/5555

java -jar selenium-server-standalone-2.48.0.jar -role hub

java -jar selenium-server-standalone-2.48.0.jar -role node -port 5555

启动一个远程node:p(192.168.0.102)在虚拟机里面:端口是6666

java -jar selenium-server-standalone-2.48.0.jar -role node -port 6666 -hub http://192.168.0.101:4444/gird/register

测试脚本:

'''

在不同主机、不同浏览器同时执行测试用例,多线程;

利用Selenium Girl提供分布式执行测试用例;

先启动Selenium server,这里分别在本地主机启动一个hub和一个node,在其他主机(虚拟机)启动一个node。

'''

from selenium.webdriver import Remote

import threading

from time import *

#测试用例

def test_baidu(host,browser):

print("开始:%s"%ctime())

print(host,browser)

dc ={'browserName':browser}

driver = Remote(

command_executor=host,

desired_capabilities=dc

)

driver.get(r'http://www.baidu.com')

driver.implicitly_wait(10)

driver.find_element_by_link_text("新闻").click()

sleep(2)

driver.get_screenshot_as_file(r'D:\testscreen\baidu.jpg')

driver.quit()

if __name__ =='__main__':

#启动参数,指定运行主机和浏览器

lists={'http://127.0.0.1:4444/wd/hub':'chrome',

'http://127.0.0.1:5555/wd/hub':'internet explorer',

'http://192.168.216.128:6666/wd/hub':'firefox' #远程节点node

}

threads =[]

files = range(len(lists))

#创建线程,并append进线程组

for host,browser in lists.items():

t = threading.Thread(target=test_baidu,args=(host,browser))

threads.append(t)

#启动每一个线程

for i in files:

threads[i].start()

#守护每一个线程

for i in files:

threads[i].join()

运行结果:

201812684020490.png?201811684042

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python多线程应用于自动化测试操作示例

本文地址: http://www.cppcns.com/jiaoben/python/246371.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值