本文实例讲述了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()
测试结果:
由测试结果得到:多线程同时开始执行测试用例,大大缩小测试总时间。
多线程结合分布式执行测试用例
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()
运行结果:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
标签:
Python,多线程,自动化测试
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“Python多线程应用于自动化测试操作示例”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
2025年11月08日
2025年11月08日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]

