代码拉取完成,页面将自动刷新
该项目是基于pytest + selenium的web端UI自动化测试框架的demo,以稀土掘金为测试网站:https://juejin.cn/。
该项目总体分为两个目录(每个目录其实相当于IDEA的Module概念。):
注意:请先使用pipenv
安装package。
pom/run.py
。kdt/run.py
。
kdt/pytest.ini
只选择了执行test/test_excel.py
。kdt/pytest.ini
的addopts使用-k
参数。pom目录中,主要目录为3个:
base
:存放页面对象公共的selenium操作,被页面对象继承且调用。pageobject
:存放页面对象,被测试用例直接调用。test
:存放测试用例。pom目录要介绍的东西不多,毕竟pom相对简单易懂。暂时设置的功能也不多,因为部分功能与kwt目录有重叠,所以大部分功能都设置在了kwt目录。所以本项目重点的kwt目录。
-k
@pytest.mark.parametrize
时的ids,所以我们也可以通过excel文件的用例名称来筛选用例的执行glob.glob("excel/**/test_*.xlsx", recursive=True)
pytest.main()
执行后启动pytest框架test_excel.py
,该文件会扫描指定目录下的所有excel文件,读取后根据文件动态生成用例方法。test_excel.py
文件外,其它test_xx.py按照正常流程执行excel文件中,一个sheet为一个suite,一个suite可存放多个用例
执行每个用例都要打开一个浏览器然后再关闭吗? 不一定。 pom和kdt中你都可以选择。你也可以选择每个类的所有用例都只使用浏览器。
如何实现?使用夹具。 目前的实现是定义多个启动driver的夹具,如driver夹具的范围为function级别、class_driver夹具的范围为class级别。
提醒:当使用数据驱动,每次执行用例,如果夹具的范围是fucntion,则每次基于数据驱动的执行用例方法都会执行方法级别的夹具。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。