admin管理员组文章数量:1532468
python多线程跨浏览器测试
- 1、引言
- 2、跨浏览器操作及定义
- 2.1 啥是跨浏览器测试
- 2.2 为啥要进行跨浏览器测试
- 2.3 跨浏览器测试执行
- 3、代码编写实战
1、引言
在WebUI自动化方面的博文, 我也是有好一段时间没有更新了, 这昨晚被小屌丝骚扰了…
为了答应小屌丝的要求(能得到小姐姐的微信),我昨晚是整理了半宿啊,
先还原一下小屌丝诱惑我写博文的对话:
小屌丝:小鱼,我用脚指头算了一下,你有半年没更新WebUI相关的博文了,是因为小姐姐吗?
小鱼:我擦~~ 你还能说得再直接点吗?
小屌丝:6月初,小姐姐的照片。
小鱼:… 不记得,我不会承认我帮小姐姐破解压缩包的事情。
小屌丝:能不能偶尔也为我们这些帅哥想一下,
毕竟我们对技术的执着是认真的。
小鱼:赶紧的,想说啥,直接说,这大半夜的,忙着呢…
小屌丝:我想知道 如何使用selenium,进行跨浏览器测试。
小鱼:就这?我忙呢,现在没时间给你讲这个…
小屌丝:刚刚有个小姐姐私信我,问我有没有小鱼的WeChat
小鱼:我这么正直的人, 不要用小姐姐来骗我?
小屌丝:小姐姐还挺漂亮!而且还…
小鱼:我是那种人吗?我看中的是颜值吗? 不可能。
小屌丝:这么坚决?嗯,好吧, 那我就回复小姐姐,不方便提供微信了。
小鱼:…你这样直接拒绝,不礼貌,让小姐姐添加我的微信,我来拒绝她…
小屌丝:那你先给我讲如何多线程跨浏览器操作,
讲明白了,我就让小姐姐加你微信。
小鱼:我不是为了小姐姐,而是看你对技术这么执着,我就勉为其难的给你讲一下吧。
先喝杯美咖,然后默默的打开编译器,开始撸代码…
2、跨浏览器操作及定义
在做测试开发中, Web测试中的兼容性测试是很重要的一个环节,
毕竟市面上浏览器那么多,如果不适用于主流的浏览器,那最后只能是凉凉。
在自动化未面世前,我们能做的,就是测试机安装很多种浏览器,不停地切换,已验证同一个功能在不同浏览器或不同浏览器版本,可以正常使用~~这搞到最后,就想骂街!
提到这个事情,小鱼深有体会:
那时还在岛国,两台测试机,安装了ie的各种版本,chrome,Firefox,safai…哎~
所以,为了能让更多测试开发大佬不去体验这种苦逼的操作
,我们就需要进行跨浏览器测试,
那么,接下来,就来看看,啥是跨浏览器测试
2.1 啥是跨浏览器测试
就一句话,很好理解:
跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作。
2.2 为啥要进行跨浏览器测试
因为不同的人,喜好不一样, 就好比,有的妹子喜欢个帅哥,有的妹子喜欢隔壁王老五。
所以,我们需要满足不同的人的需求。
毕竟:
我们作业写的好,“家长们”就开心,“家长们”开心了,我们就有零花钱了,我们有零花钱了,就能写好作业…
跨浏览器测试的根源:
- 在不同浏览器字体大小不匹配;
- javascrpit的实现不一样;
- css、html的验证有所区别;
- 有的浏览器或低版本不支持HTML5;
- 页面对齐和div大小问题;
- 图片位置或大小问题;
- 浏览器和操作系统间的兼容问题;
以上几个方面不仅仅对布局有影响,甚至会导致功能不可用,所以我们需要进行跨浏览器测试。
2.3 跨浏览器测试执行
如果我们使用selenium webdriver,那我们就能够自动的在IE、firefox、chrome、等不同浏览器上运行测试用例。
为了能在同一台机器上不同浏览器上同时执行测试用例,我们需要多线程技术。
下面我们基于python的多线程技术来尝试同时启动多个浏览器进行selenium自动化测试。
话不多说,直接来到第三章节,上代码
3、代码编写实战
编写代码
# -*- coding:utf-8 -*-
# @Time : 2021-06-16
# @Author : carl_DJ
from selenium import webdriver
from threading import Thread
import sys,time
#直接使用百度搜索进行演示
def test_baidu_search(browser, url):
driver = None
# 你可以自定义这里,添加更多浏览器支持进来
if browser == "ie":
driver = webdriver.Ie()
elif browser == "firefox":
driver = webdriver.Firefox()
elif browser == "chrome":
driver = webdriver.Chrome()
if driver == None:
exit()
print(f'开始进行搜索')
driver.get(url)
print(f'清空输入框内容,输入关键字进行搜索')
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"carL奕然的博客")
print(f'点击百度的搜索按钮')
driver.find_element_by_id("su").click()
time.sleep(3)
print(f'关闭并退出浏览器')
driver.quit()
if __name__ == "__main__":
# 浏览器和首页url
data = {
"ie": "http://www.baidu",
"firefox": "http://www.baidu",
"chrome": "http://www.baidu"
}
# 构建线程
threads = []
for b, url in data.items():
t = Thread(target=test_baidu_search, args=(b, url))
threads.append(t)
# 启动所有线程
for thr in threads:
thr.start()
运行结果
写到这里,就完事了,是不是很简单。
我也赶紧的跟小屌丝要小姐姐的微信了。
小鱼:小屌丝,我这讲的还可以吧,要不…小姐姐的…微信…
小屌丝:好的好的, 我这就让小姐姐加你微信。
小鱼:激动的心,颤抖的手,小姐姐的微信不能少。
小屌丝:不带反悔的。
小鱼:小屌丝…你~ ~
版权声明:本文标题:Selenium+Python3之:多线程进行跨浏览器测试 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1725797502a1043158.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论