Web测试框架SeleniumBase

首先,SeleniumBase支持 pip安装:

python 复制代码
> pip install seleniumbase

它依赖的库比较多,包括pytest、nose这些第三方单元测试框架,是为更方便的运行测试用例,因为这两个测试框架是支持unittest测试用例的执行的。

SeleniumBase还生成了"seleniumbase"命令,主要是为了方便我们安装浏览器驱动。

你可以通过下面的命令安装不同的浏览器驱动。

python 复制代码
seleniumbase install chromedriver

seleniumbase install geckodriver

seleniumbase install edgedriver

seleniumbase install iedriver

seleniumbase install operadriver

在项目的examples/目录下面提供了丰富的例子。其中my_first_test.py如下:

python 复制代码
from seleniumbase import BaseCase


class MyTestClass(BaseCase):

    def test_basic(self):
        self.open("https://xkcd.com/353/")  
        self.assert_element('img[alt="Python"]')  
        self.click('a[rel="license"]')  
        self.assert_text("free to copy", "div center")  
        self.open("https://xkcd.com/1481/")
        title = self.get_attribute("#comic img", "title")  
        self.assert_true("86,400 seconds per day" in title)
        self.click("link=Blag")  
        self.assert_text("The blag of the webcomic", "h2")
        self.update_text("input#s", "Robots!\n")  
        self.assert_text("Hooray robots!", "#content")
        self.open("https://xkcd.com/1319/")
        self.assert_exact_text("Automation", "#ctitle")

如果你很熟悉Selenium的话,我想这些API对你来说并没什么难度。脚本中的元素定位默认使用的CSS。

接下来是脚本的执行,你可以使用pytest或nose,因为SeleniumBase已经帮你装好了:

python 复制代码
> pytest my_first_test.py --browser=chrome

> nosetests my_first_test.py --browser=firefox 

它还提供的有 ```---demo_mode``` 模式,使脚本执行的过程变得很慢,而且还会让操作的元素高亮显示,方便你查看和定位问题。

复制代码
pytest my_first_test.py --demo_mode

在调试Selenium脚本的时候,我们希望错误时可以暂停脚本,那么可以加 ```--pdb -s``` 参数。

复制代码
pytest my_first_test.py --pdb -s

当脚本报错时是这样的:

上面的代码将使浏览器窗口保持打开状态,以防出现故障。你可以继续输入命令:

"c":继续

"s":步骤

"n": 下一步

你还可以利用pytest 的 pytest-thml插件生成测试报告。

复制代码
pytest test_suite.py --html=report.html

当用例运行失败时自动截图!

其他就没什么亮点了,不过提供的API 非常丰富,而且作者非常积极的在维护项目。你可以在项目说明中查看,或者通过提供的examples/的例子来学习。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
To_OC6 小时前
别再瞎写 React Router!7 个高频踩坑点一次性讲透
前端·javascript·react.js
是小艺吗。7 小时前
第三方机构出具的软件功能测试报告的作用与流程说明,中承信安专业讲解
功能测试·单元测试·软件测试报告·软件功能测试·软件测评
岭南灯火8 小时前
前端通用交互式几何编辑器的开发经验
前端·设计模式·架构
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 7 - 设计模式与原则
前端·设计模式·架构
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 4 - 绘制、悬停与编辑
前端·设计模式·架构
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 3 - 数据对象的设计
前端·javascript·架构
Jackson__8 小时前
从 LLM 到 Agent:一篇文章搞懂 AI 圈热词!
前端·agent·ai编程
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 2 - 交互事件流
前端·javascript·架构
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 6 - 配套设施与工程化
前端·设计模式·架构
岭南灯火8 小时前
前端通用交互式几何编辑器的设计法则 5 - 辅助元素的设计
前端·设计模式·架构