Selenium+Python3之:多线程进行跨浏览器测试

简介: Selenium+Python3之:多线程进行跨浏览器测试

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.com",
        "firefox": "http://www.baidu.com",
        "chrome": "http://www.baidu.com"
    }
    # 构建线程
    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()

运行结果

image.png


写到这里,就完事了,是不是很简单。

我也赶紧的跟小屌丝要小姐姐的微信了。


小鱼:小屌丝,我这讲的还可以吧,要不…小姐姐的…微信…

小屌丝:好的好的, 我这就让小姐姐加你微信。

小鱼:激动的心,颤抖的手,小姐姐的微信不能少。

小屌丝:不带反悔的。

小鱼:小屌丝…你~ ~


目录
相关文章
|
2月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
3月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
161 5
|
26天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
76 19
Selenium IDE:Web自动化测试的得力助手
|
28天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
154 17
Selenium:强大的 Web 自动化测试工具
|
4月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
3月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
194 1
|
2月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
128 1
|
3月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
614 5
|
3月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。