一文搞懂pytest+selenium编写网页UI自动化脚本和用例

1UI自动化测试

比如一些常用的测试框架或者工具(robotframework,testng,pytest,selenium,appnium,playwright等)都支持UI界面的自动化测试,而这节内容主要介绍下pytest框架+selenium工具在web端的自动化实践。

测试分层

2安装所需的python包pytest安装

使用pip命令安装:pipinstallpytest-i

selenium安装

使用pip命令安装:pipinstallselenium-i

目前最新版本4.23.1,需要适配python版本3.8+及以上版本

PS:安装在pytest工程所运行的python环境,python的安装目录或者虚拟环境目录,可以参考之前文章查看运行环境pycharm配置pytest运行环境)

3selenium介绍

百度一下按钮的元素信息:

inputtype="submit"id="su"value="百度一下"class="bgs_btn"

对应Xpath为://*[@id="su"]

百度登录相关的元素信息如下:

aclass="s-top-login-btnc-btnc-btn-primaryc-btn-minilbbtn-fixed"style="position:relative;overflow:visible;"id="s-top-loginbtn"href=";tpl=mnu=http%3A%2F%2%2Fsms=5"name="tj_login"onclick="returnfalse;"登录/a

l用户名:

inputid="TANGRAM__PSP_11__userName"type="text"name="userName"class="pass-text-inputpass-text-input-userName"autocomplete="off"value=""placeholder="手机号/用户名/邮箱"

l密码:

inputid="TANGRAM__PSP_11__password"type="password"name="password"class="pass-text-inputpass-text-input-password"autocomplete="off"value=""placeholder="密码"

l阅读并接受选项:

inputname="isAgree"id="TANGRAM__PSP_11__isAgree"type="checkbox"class="pass-checkbox-inputpass-checkbox-isAgree"autocomplete="off"

l登录按钮:

inputid="TANGRAM__PSP_11__submit"type="submit"value="登录"class="pass-buttonpass-button-submitpass-button-full-disabled"disabled=""

4pytest框架实现selenium自动化用例

在pytest框架下我们创建1条测试用例,在百度查找内容后,校验下输入框中的内容是不是我们之前输入的内容,具体代码如下:

_1():driver=()断言_element(,'kw').get_attribute('value')=='python'关闭浏览器()

用例执行的结果为通过。

我们将用例改造下,通过设置fixture函数来实现用例的setup和teardown动作,并在用例中实现参数化,增加多个搜索的文本。fixture函数的使用介绍请参考之前文章fixture函数介绍。

@()defopen_close_web():driver=()关闭浏览器()@('text',['python','pytest'])deftest_1(text,open_close_web):open_close__element(,'kw').s_keys(f'{text}')open_close__element(,'su').click()sleep(1)assertopen_close__element(,'kw').get_attribute('value')==f'{text}'

PS:以上代码都是经过本地实际测试通过,大家可自行使用。

总结:本章我们简要介绍了使用python库selenium在pytest框架下的UI自动化脚本和用例的编写调试过程,大家可以在线下多多实践,当然对于大型的项目,我们还要规划好整个测试用例和脚本目录结构,方便后续维护。

共勉:东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

发布于 2025-07-15
24
目录

    推荐阅读