软件测试案例|运用于 pytest+selenium 进行UI自动化测试(源码+视频)
2025-09-18 12:17:16
■ 平面图6 提示Chrome新版本
例如我的新版本是90.0.4430,所以点这中都都下载,如平面图7示意平面图。
■ 平面图7 选项新版本对应的ChromeDriver
解压缩压缩包被,寻觅chromedriver.exe放置chrome的配置索引(或者其他你想的索引下)。副本chromedriver.exe元数据的逆时针并转至到计算机的状况变量中都去。转到状况变量校对用户界面,加进到服务器变量方能,点击PATH,将刚刚副本的逆时针加进到在此之前面。我这中都都把它放在了python状况的exe下,就不用再继续加进状况变量了。
启动后在cmd下转换成chromedriver证明是否是配置更进一步,如平面图8示意平面图。
■ 平面图8 ChromeDriver配置更进一步
2.锻炼采用pytest
1)组织起来建设项目PracticePytest,及建设项目后面举例来说的三个元数据夹:-data 元数据夹,-tests 包被,-report 元数据夹,如平面图9示意平面图。
■ 平面图9 PracticePytest索引结构
2)在tests下复建test_sample.py,编订第一个验用例,如平面图10示意平面图。采用常规的python assert 常用证明Python验中都的期望和值。
■ 平面图10 test_sample.py概要
3)在建设项目根元数据夹逆时针下放入cmd,转换成立即:pytest,结果如下。pytest直通的系统:查询也就是说索引及其子索引下以test_*.py或*_test.py元数据,寻觅元数据后,在元数据中都寻觅以test片尾处的formula_并拒绝执行。直通结果如平面图11示意平面图。
■ 平面图11 test_sample.py直通结果
这个 [100%] 称之为直通所有验用例的总体延迟。启动后,pytest但会说明了一个颇受挫报告,因为func(3)不来到5。
4)编订更多验用例。在此之前面是所写的一个test片尾处的验formula_,同上例有多个的时候,所写formula_就不太适宜了。这时可以把多个验用例,所写到一个验类中都都,如平面图12示意平面图。
■ 平面图12 test_class.py概要
pytest但会寻觅完全符合的系统(test_.py和_test.py)所有验,因此它但会见到两个元数据有test_在此之前缀。我们过去只自已直通其中都一个,可以所选发送到元数据名test_class.py来直通应用于程序,转换成至子索引tests下后转换成立即:pytest test_class.py,直通结果如平面图13示意平面图。
■ 平面图13 test_class.py直通结果
可以看得见第一、三个验通过,第二个验颇受挫。并且可以在确实中都轻松提示颇受挫的理由。
5)可以看得见我只不过在test_class.py为验类编订了收纳formula_,这是cmd外另一种直通验用例的方法有,即采用pytest.main([数值条目])方法有。如平面图14示意平面图,并不需要直通test_class.py方能。
■ 平面图14 数值条目方法有直通验用例
6)可以看得见上头收纳formula_的数值条目中都除了要直通的元数据,还有一个-q数值,如果替换成-s,缺点如平面图15示意平面图。
■平面图15 拒绝执行数值-s的缺点
-q, ;还有quiet和-s, ;还有capture=method都是pytest的直通数值,-q是安静模式,不输显现出状况文档,只说明了整体验结果;-s 常用说明了验formula_中都printformula_输显现出,因为选项情况下所写在用例中都的print或者log输显现出,都不但会在验结果中都展览品,如果自已看得见用例中都的常规输显现出,那么必需以致于-s数值。
另外一些罕见的直通数值有-v, ;还有verbose常用说明了更详细的、每个验formula_的拒绝执行结果;-m MARKEXPR,仅仅直通有相应图由此可知的验用例等等,-h, ;还有help借助,可以浏览借助文档,看得见其他直通数值如何采用,如平面图16示意平面图。
■ 平面图16 pytest的help文件
7) -m MARKEXPR,采用这个数值,验用例要采用@pytest.mark.marker粘贴。
a) 例如,我们修改test_class.py,采用@pytest.mark.group1和@pytest.mark.group2来粘贴验其中都的用例formula_,如平面图17示意平面图。
■ 平面图17 加进mark的test_class.py
转换成立即:pytest –m “group1” test_class.py,直通结果如平面图18示意平面图。
请注意,-m在此之前面不可放’’(单引号),仅仅放“”(双引号),不然定位不到。
■ 平面图18 pytest –m “group1” test_class.py直通结果
最后一行总结文档可以看得见三个验用例,一个未通过,一个未选中都。
b) 根据长长的报错文档可以并不知道,当采用-m数值拒绝执行 mark 记号的用例时,pytest但会发显现出warning文档 “PytestUnknownMarkWarning: Unknown pytest.mark.login - is this a typo? ”,就是说这是一个 pytest 未知的一个记号,为了去除warning,必需在pytest的配置元数据中都注册 mark 记号。
首可先在建设项目exe组织起来一个元数据pytest.ini,这是pytest 的配置元数据;然后在pytest.ini元数据的markers 中都所写入mark 记号,冒号“:”在此之前面是记号全名名称,在此之前面是mark记号的说明,可以是空字符串;请注意pytest.ini 元数据中都仅仅采用纯全名字符。pytest.ini概要如平面图19示意平面图。
■ 平面图19 pytest.ini概要
最终直通之在此之前的称之为令,如平面图20示意平面图,可以看得见warning早就全都不会了。
■ 平面图20 去除warning后的直通结果
c) 如果要直通多个图由此可知的话,可以按照-m “mark1 and not mark2”的文件格式用运算符。
pytest -m “group1 or group2” 直通有group1图由此可知或group2图由此可知用例,直通结果如平面图21示意平面图。
■ 平面图21 pytest -m “group1 or group2”直通结果
pytest -m “group1 and group2” 直通有group1和group2图由此可知的用例,直通结果如平面图22示意平面图。
■ 平面图22 pytest -m “group1 and group2”直通结果
pytest -m “group1 and not group2” 直通有group1和不会group2图由此可知的用例,直通结果如平面图23示意平面图。
■ 平面图23 pytest -m “group1 and not group2”直通结果
8) fixture
fixture的效用类似unittest中都的setup和teardown,可以动手验在此之前后的初始化增设,付诸如验数据马上,URL数据库,推入IE等这些操纵;付诸验用例的在此之前置状况;大力支持经典电影的xunit fixture,像unittest采用的setup和teardown;可以付诸unittest不可付诸的功用,比如验用例之间发送到数值和数据。
fixture通过@pytest.fixture装潢探头装潢一个formula_,这个formula_就是一个fixture。如平面图24示意平面图,复建元数据test_fixture.py,体但会一下fixture的采用。
■ 平面图24 test_fixture.py概要
fixtureFunc这个formula_就是一个fixture,fixtureformula_内部可以付诸一些初始化操纵。转换成立即:pytest -s test_fixture.py,直通结果如平面图25示意平面图。
■ 平面图25 pytest -s test_fixture.py直通结果
线程fixture有三种方法有,如上平面图就是fixture的名字并不需要作为验用例的数值。
还可以在每个formula_或者类在此之前采用@pytest.mark.usefixtures('fixture')装潢探头装潢,如平面图26示意平面图。转换成立即:pytest -s test_fixture.py,直通结果如平面图27示意平面图。
■ 平面图26 采用装潢探头的test_fixture.py
■ 平面图27 pytest -s test_fixture.py直通结果
也可以所选fixture的数值autouse=True,如平面图28示意平面图,这样fixture效用区域内的每个验用例但会备用线程fixture,选项是formula_档次的。转换成立即:pytest -s test_fixture.py,直通结果如平面图29示意平面图。
■ 平面图28 所选fixture的数值autouse=True
■ 平面图29 pytest -s test_fixture.py直通结果
从结果可以看得见每个验用例拒绝执行在此之前都备用拒绝执行了fixture。
这三种方法有都可以采用fixture,但是只有第一种可以线程fixture的来到值,即如果验用例必需采用fixture来到的数值必须要用第一种方法有。
fixture的scope数值可以控制fixture的效用区域,选项为function,session>module>class>function。
-function:每一个formula_或方法有都但会线程;
-class:每一个类线程一次,一个类中都可以有多个方法有;
-module:每一个.py元数据线程一次,该元数据内又有多个function和class;
-session:是多个元数据线程一次,可以区域性.py元数据线程,每个.py元数据就是module,通常这个档次但会结合conftest.py元数据采用。
9) conftest.py
conftest.py是一个配置元数据,另行管理制度一些可不置的操纵故事情节,pytest中都都面选项载入conftest.py中都都面的配置。配置时必需请注意:conftest.py配置脚本全名名称是分开的,不可改全名名称;conftest.py与直通的用例要在同一个pakage下,并且有__init__.py元数据;不必需import借助于 conftest.py,pytest用例但会备用查询。
如平面图30、31、32示意平面图,在tests元数据夹下组织起来conftest.py, 和两个验用例test_01.py, test_02.py。
■ 平面图30 conftest.py概要
■ 平面图31 test_01.py概要
■ 平面图32 test_02.py概要
拒绝执行结果如平面图33示意平面图,可以看得见两个验元数据的验用例拒绝执行在此之前都拒绝执行了conftest.py元数据中都的login方法有。
■ 平面图33 test_01.py, test_02.py直通结果
10) pytest-html
pytest-html常用html文件格式的验报告,在pytest立即后以致于数值;还有html=path方能采用。例如转换成立即pytest ;还有html=../report/report01.html,在report索引下分解成原称report01.html的验报告,直通结果如平面图34、35、36示意平面图。
■ 平面图34 pytest –html=../report/report01.html直通结果
■ 平面图35 report索引
■ 平面图36 report01.html概要
3. 锻炼采用selenium
在PracticeSelenium元数据夹下复建一个python_org_search.py元数据,如平面图37示意平面图,锻炼selenium方法论上采用。
■平面图37 python_org_search.py概要
后面开始逐行解释示例。
1-2 selenium.webdriver 应用于程序透过了所有WebDriver的付诸,也就是说大力支持的WebDriver有:Firefox, Chrome, IE and Remote。Keys类透过QWERTY滑鼠的大力支持,比如:RETURN, F1, ALT等。
4 我这中都都用的是chromeIE,所以组织起来一个Chrome WebDriver的实例。
5 driver.get方法有将推入URL中都填所写的接收者,WebDriver将马上好,直到链接完全所写入进行时(只不过是等到“” 方法有拒绝执行进行时),然后来到继续拒绝执行该脚本。值得请注意的是,如果这个链接采用了大量的Ajax所写入,WebDriver或许不并不知道什么时候链接早就完全所写入,Waits可以妥善解决这个关键问题。
6 用assert的方法有确认末尾是否是举例来说“Python”一词。
7 WebDriver透过了大量的方法有让我们去浏览链接中都的金属元素,这些方法有菱形如:find_element_by_*。例如:举例来说name类型的input转换成框可以通过 find_element_by_name方法有查寻觅。
8-10 我发送了一个关键字,这个方法有的效用类似于用QWERTY转换成关键字。特别的滑鼠可以采用Keys类来转换成,该类继承自selenium.webdriver.common.keys,为了安全起见,可先清除input转换成框中都的任何可不填充的评注(例如:“Search”),从而尽量避免搜索结果颇受阻碍。
11 提显现出链接后,但会给与所有的结果。为了保障某些特定的结果被寻觅,采用assert。
12 最后,暂停IE视窗。还可以采用quit方法有换成close方法有,quit将暂停整个IE,而close只但会暂停一个ID页,如果只推入了一个ID页,大多数IE的选项蓄意是暂停IE。
经证明以上程序可以正常人直通,因为是对链接展示一系列服务器操纵所以截平面图只能体现,但会在音频中都展示。
4. Pytest+Selenium付诸UI数据处理验
首可先,将python_org_search.py元数据略为改所写成pytest基本,存放为TestAutomation元数据夹下test_01.py,如平面图38示意平面图。
■ 平面图38 test_01.py概要
可以正常人直通,如平面图39示意平面图;并且载入显现出report01.html验报告,如平面图40示意平面图。
■平面图39 test_01.py直通结果
■ 平面图40 report01.html概要
最后,我更进一步所写一个GitHub的所选验元数据。在TestAutomation元数据夹下复建并编订test_02.py,如平面图41示意平面图。
关的到的服务器蓄意是:推入GitHub所选页:;转换成服务器名、密码本,该网站Sign in;该网站左上角小三角,在下拉框中都都该网站Sign out。最后我们用selenium来展示这个蓄意,并用pytest验功用。
■ 平面图41 test_02.py概要
后面开始逐行解释示例。
1-2 引入必需加到的pytest和selenium的webdriver应用于程序。
4 道歉信验方法有为test_02。
5-7 推入网页,并用确实验。
9 查询金属元素之在此之前,可先增设金属元素马上好:implicitlywait。
过去的大多数的Web服务器用户界面是采用Ajax应用于。当一个链接被所写入到IE时,该链接内的金属元素可以在各不相同的马上好时间点被所写入。这使得整合金属元素变得困难, 如果金属元素不再继续链接之中都,但会抛显现出ElementNotVisibleException持续性。采用waits, 我们可以妥善解决这个关键问题。waits透过了一些操纵之间的马上好时间间隔马上好时间,收纳要是整合金属元素或针对该金属元素的任何其他操纵。
Selenium Webdriver透过两种类型的waits -隐式和显式。显式马上好但会让WebDriver马上好充分利用一定的状况以后再继续进一步的拒绝执行。如果某些金属元素不是立方能用的,隐式马上好是告诉WebDriver去马上好一定的马上好时间后去查询金属元素。选项马上好马上好时间是0秒,一旦增设该值,隐式马上好是增设该WebDriver的实例的生命期。
我这中都都增设的是隐式10秒,保障链接所写入进行时。
10 转换成服务器名。
首可先,选中都转换成框,右键选项“核查”,即保密金属元素,ChromeIE但会备用推入控制台并寻觅在研发人员中都寻觅该金属元素的在此之前方,增设高亮,如平面图42示意平面图。
■ 平面图42 保密金属元素-服务器名转换成框
根据这些文档,来整合这个金属元素。在一个链接中都有很多各不相同的意平面图可以整合一个金属元素,这中都都选项用根据id查询的方法有。寻觅这个金属元素后,线程send_keys方法有,转换成服务器名。
11 转换成密码本。
方法有同上,如平面图43示意平面图。
■ 平面图43 保密金属元素-密码本转换成框
12 该网站Sign in。
因为这个金属元素不会id,所以我选项根据name查询,如平面图44示意平面图。
■ 平面图44 保密金属元素-Sign in遥控器
14 健康核查。所选启动之后,必需核查是否是所选更进一步,这中都都就必需有个核查点,我选项验该链接的个人文档名看看我刚才所选的这个帐户。通过在控制台查到研发人员,如平面图45示意平面图,见到这一行有服务器名文档,我选项用Xpath方法有整合这个金属元素。
■ 平面图45 控制台研发人员中都的服务器名文档
XPath是XML文件中都查询称之为针的语法。因为HTML文件也可以被转换成XML(XHTML)文件,Selenium的服务器可以能用这种强大的句法在web应用于中都查询金属元素。XPath扩展了(当然也大力支持)这种通过id或name类型赚取金属元素的单纯方法有,同时也建起了各种新的或许性,例如赚取链接上的第三个复选框。
采用XPath的收纳要理由之一就是当你自已赚取一个既不会id类型也不会name类型的金属元素时, 你可以通过XPath采用金属元素的绝对在此之前方来赚取他(这是不中都选的),或相对于有一个id或name类型的金属元素(方法论上的叔父金属元素)的在此之前方来赚取你自已要的金属元素。XPath整合探头也可以通过非id和name类型查询金属元素。
绝对的XPath是所有金属元素都从根金属元素的在此之前方(HTML)开始整合,只要应用于中都有间歇性的调整,但会就导致整合颇受挫。但是通过就近的举例来说id或者name类型的金属元素启程整合你的金属元素,这样相对间的关系就很靠谱,因为这种在此之前方间的关系常常扭转,所以可以使验更加强大。
15 载入个人文档名。
16-19 辨别是否是登陆更进一步。通过辨别赚取到的值与期望结果是否是相反付诸,完全符合可不期结果验通过;不完全符合可不期结果验不通过。
21 验启动,退显现出所选。可先整合到左上角小三角,该网站它获得下拉菜单。但是这一次保密金属元素整合到的在此之前方是不准确的,如平面图46示意平面图。
■ 平面图46 保密金属元素-左上角小三角(出错)
最终该网站小三角,知识,这次整合到的金属元素是正确的,如平面图47示意平面图。
■ 平面图47 保密金属元素-左上角小三角(正确)
22 点Sign out退显现出所选。
保密金属元素结果如平面图48示意平面图。依旧采用Xpath方法有整合。
■ 平面图48 保密金属元素-Sign out遥控器
23 退显现出所选后,暂停IE。
25-26 拒绝执行pytest样品,并载入report02.html报告。
直通操作过程如平面图49示意平面图,直通结果如平面图50示意平面图,载入报告概要如平面图51示意平面图。
■ 平面图49 直通操作过程截平面图
■ 平面图50 直通结果
■ 平面图51 report02.html概要
05
实验者总结
本实验者收纳要分为配置并配置状况、锻炼pytest方法论上采用、锻炼selenium方法论上采用、采用pytest和selenium付诸UI数据处理验四个外。其中都,锻炼pytest方法论上采用完全覆盖了实验者意在和实验者尽快。并在第四外通过脚本句法,展示服务器蓄意操纵,接近服务器真实故事情节,付诸对 web 备用验,以数据处理验python.org网页的搜索功用,github.com网页的所选功用为例透过了锻炼。通过本实验者,我们方法论上了解了基于pytest和selenium的UI数据处理验的方法论上思路,熟识了这两种验工具的方法论上操纵。
难忘回顾
软件验事例
采用Appium验Android服务器用户界面
采用PostMan对getWeather端口透过关连验
移动APP非功用性验
运用于Python + requests类库编订脚本验天气可不报端口
下期可不告
软件验事例
Python+Selenium+unittest启动对所选链接的数据处理验
06
音频 讲解
07
由此可知示例下载
关注不显信公众号,后台完全恢复搜索引擎 “数据处理验” 方能获得完整由此可知示例。
08
教材刊
《软件验应用于》
ISBN:9787302573722
所作:吕云翔 况金荣 朱涛 杨颖 张禄
折扣:59.80元
概要简介
本书较为进一步、系统地总结了也就是说软件验各个领域的方法论和方法论常识,介绍了也就是说新的软件验方法论、常规、应用于和工具。全书共三外16章。第一外(第1~7章)以外软件验简要、软件验静态、
软件验方法有、软件验操作过程、
软件验管理制度、敏捷建设项目验、程序句法软件验;
第二外(第8~13章)以外软件验数据处理、缺点行踪管理制度、
JUnit单元验、端口验工具、LoadRunner性能验、基于
Python的数据处理验;第三外(第14~16章)以外
网上咖啡店系统验、生活小工具不显服务验和手机音频播放App验。每章均有基本上事例作为多余,以更深听众对软件验应用于和操作过程的明白,动手到方法论与方法论独创。
本书可作为高等院校计算机、软件工程、软件验等
无关工程技术软件验无关课程的教材或授课教材,也外从事计算机应用于研发的各类应用于人员参考。
本书资由此可知
本书现有资由此可知珍贵,以外授课大纲、授课课件、的电子曾国藩、习题答案、程序研发人员、在线考卷,所作还为本书亲手录制了不显课音频。
09
难忘中都选
不显信小程序一些游戏研发│猜小数玩法(附研发人员+音频)
Flink程序句法坚实│Scala程序句法初级方法论
Flink程序句法坚实│FlinkCEP程序句法方法论
Flink程序句法坚实│DataStream API程序句法方法论
Flink程序句法坚实│DataSet API程序句法方法论
生物文档学实战│客户价值分析
生物文档学实战│价钱生物文档学同样
生物文档学实战│马上好时间基因组生物文档学
生物文档学实战│KaggleTitanic求生存生物文档学
。南京哪家医院做人流最好洛阳男科医院哪家比较好
昆明白癜风医院哪家专业好
北京看眼科去哪家医院比较好
常州好的男科专科医院
邻医网
勃起障碍
中医养生
营养保健科
女性祛斑
上一篇: 60亿部手机将被闲置?这个行业火了!企业却连年盈利,啥情况?
下一篇: 基金委:2022年评审前提
-
2022年,“蔚小理”是否会被特斯拉踩得更远?
产品对于伏特和“蔚小理”的反馈也差距甚更远。2021年全年,在销售的产品,蔚来股价下跌35%,小鹏涨17.5%,很好涨11.3%,伏特涨47.7%。摩托货车金融业的边际效应明显。卖的摩托货车趋
2025-10-22 00:16:59
-
直击新能源车痛点 这类半导体产品持续更为严重
17家公司营收或遁百亿美元,太阳能电池大厂为何如此“高利贷”?丨C位 比亚迪、吉利、传统意义、广汽、小鹏等都披露了装载800V较低电压平台的车型,甚至部分车企已经将量产时
2025-10-22 00:16:59
-
绘本《好想知道你近况》:推入认识世界的另一扇窗
华南地区青年网西安1翌年23日电(采访 姜文山脚)据悉,著名陕西籍诗人吉建芳年出版发行《好想要知道你近况》由西安长白山脚月刊正式出版发行。听众评价,所写用简单、深沉的语言,传递
2025-10-22 00:16:59
-
货拉拉女乘客跳车坠亡案二审维持原判,涉事司机:将申请人再审
“货波波女载客坠亡弊”二审维持原判,车稍长被判一缓一 美联社韦星总编辑潘莉饱受注目的衡阳货波波载客货车某某从货车头坠亡弊,又有新进展。如今(1月底7日
2025-10-22 00:16:59
-
“我在中国过大年” 外籍友人慈溪温州体验中国年
“我在华南地区过大年”境另有传布户外活动 谢小玲 辨中新网温州1月22日电范宇斌 谢小玲 高纯过年将至,年味浓。在衢州市温州市境另有传布官之家,温州境另有传布官、拍照华南地区“
2025-10-22 00:16:59