2023年6月29日发(作者:)
Selenium⾃动化测试总结
⼀、Selenium⾃动化测试(基于python)1、Selenium简介:1.1 Selenium是⼀款主要⽤于Web应⽤程序⾃动化测试的⼯具集合。Selenium测试直接运⾏在浏览器中,本质是通过驱动浏览器,模拟浏览器的操作,⽐如跳转、输⼊、点击、下拉等,来拿到⽹页渲染之后的结果,可⽀持多种浏览器如,chorme,FireFox,IE等。1.2 Selenium WebDriver:业界通⽤的测试框架,不仅是web测试的标准,同时在移动测试领域也是底层的核⼼驱动框架;1.3 Python是动态语⾔;1.4 Selenium包括⼀系列的⼯具组件:1)Selenium IDE:是嵌⼊到FireFox浏览器的插件,⽤于在Firefox上录制和回放Selenium脚本,虽然只能在Firefox下使⽤,但它能将录制好的脚本转换成各种Selenium WebDriver⽀持的程序语⾔,进⽽扩展到更⼴泛的浏览器类型; 2) Selenium WebDriver:可⽀持多种语⾔,⽤于操作浏览器的⼀套API;⽀持各类型浏览器,跨操作系统,WebDriver为诸多语⾔提供完备的,⽤于实现web⾃动化测试的第三⽅库; 3) Selenium Standalone Server:包括Selenium Grid、远程控制、分布式部署等,均可实现Selenium脚本的⾼效执⾏与拓展;利⽤Grid使得⾃动化测试可以并⾏运⾏,甚⾄在跨平台、异构的环境中运⾏;2、基于python的selenium WebDeriver环境安装Selenium可以⾃动操纵浏览器来做很多,如模拟与浏览器的交互,⽽且⽀持到多数主流浏览器;⾸先需要选择⼀门语⾔来编写⾃动化脚本,⽽这门语⾔需要有Selenium client library⽀持,选择Python;2.1 安装python和selenium,不同安装版本可在平台下载1)安装seleniumWin:pip install seleniumMac: pip3 install selenium2)安装WebDriver, 该⼯具供selenium使⽤Chrome。(注:webdriver需要和对应的浏览器版本以及selenium版本对应)
3)WebDriver安装路径 Win:复制webdriver到Python安装⽬录下 Mac:复制webdriver到/usr/local/bin⽬录下2.2 PyCharm设置1)有两个版本:社区版和专业版,社区版是免费的,可以下载使⽤;2) 在使⽤PyCharm时,需要配置Python的解释器,我们选择⽀持selenium的Python版本解释器;3、Selenium WebDriver基于Python实现脚本 3.1 根据webDriver提供的⼀系列对象定位⽅法,获取元素,实现测试⽤例 3.2 webDriver常见的元素定位⽅法有:① id定位:find_element_by_id()② name定位:find_element_by_name()③ class定位:find_element_by_class_name()④ link定位:find_element_by_link_text()⑤ partial link定位:find_element_by_partial_link_text()⑥ tag定位:find_element_by_tag_name()⑦ xpath定位:find_element_by_xpath()⑧ css定位:find_element_by_css_selector()4、unittest编写单元测试并输出测试报告仅使⽤Selenium WebDriver,还有⼀些⽆法实现的:⽐如 实现执⾏测试前置条件、测试后置条件,⽐对预期结果和实际结果,检查程序的状态,⽣成测试报告等功能;因此需要使⽤unittest来创建基于Python的Selenium WebDriver测试脚本;4.1 什么是unittestUnittest⼀般也称为PyUnit,是从java程序开发中⼴泛应⽤的Unit启发⽽来,可以使⽤unittest为项⽬创建全⾯的测试套件,unittest具备创建测试⽤例、测试套件,测试夹具的能⼒;unitest组件:1)Test Fixture(测试夹具):可以定义在单个或多个测试执⾏之前的准备⼯作和测试执⾏之后的清理⼯作;2)Test Case(测试⽤例):unittest中执⾏测试的最⼩单元,通过验证unittest提供的assert⽅法来验证⼀组特定的操作和输⼊以后得到的响应,unittest提供了⼀个名为TestCase的基础类,可以⽤来创建测试⽤例;3)Test Suit(测试套件):⼀个测试套件是多个测试或测试⽤例的集合,是针对被测程序的对应的功能和模块创建的⼀组测试,⼀个测试套件内的测试⽤例将⼀起执⾏;4)Test Runner(测试执⾏器):测试执⾏器负责测试执⾏调度并且⽣成测试结果给⽤户,测试执⾏器可以使⽤图形界⾯、⽂本界⾯或者特定的返回值来展⽰测试执⾏结果;5)Test Report(测试报告):测试报告展⽰所有执⾏⽤例的成功或者失败状态的汇总,包括失败的测试步骤的预期结果和实际结果,还有整体运⾏状况和运⾏时间的汇总;4.2 使⽤unittest来编写Selenium WebDriver测试1)Arrange:初始化前置条件,初始化被测试的对象,相关配置和依赖;2)Act:执⾏功能操作;3)Assert:⽤来校验实际结果与预期结果是否⼀致;4.3 使⽤TestCase类来实现⼀个测试 1)集成TestCase类并且在测试类中为每⼀个测试添加测试⽅法来创建单个测试或者⼀组测试;2)TestCase中的assert⽅法,最主要的任务是 调⽤assertEqual()来校验结果;assertTrue()来验证条件;assertRaises来验证预期的异常,除了添加测试,还可以添加测试夹具,setUp()⽅法和tearDown()⽅法;3)⼀个测试⽤例是从setUp()⽅法开始执⾏,因此可以在每个测试开始前执⾏⼀些初始化的任务;此⽅法⽆参数,也⽆返回值,接着编写test⽅法,这些测试⽅法命名为test开头,这种命名约定通知test runner哪个⽅法代表测试⽅法;注:test runner能找到的每个测试⽅法,都会在执⾏测试⽅法之前先执⾏setUp()⽅法,这样有助于确保每个测试⽅法都能够依赖于相同的环境。4)tearDown()⽅法会在测试执⾏完成之后调⽤,⽤来清理所有的初始值;5)为了能通过命令⾏测试,我们可以在测试中添加对main⽅法的调⽤;我们将传递verbosity参数以便使详细的测试结果展⽰在控制台; 测试⽤例代码如下图(),如果测试通过则,浏览器最后会退出,如果出错的话,控制台则会打印出相关信息,
(图-)4.4 为⼀组测试创建TestSuite 1) 应⽤unittest的TestSuites特性,可以将不同的测试组成⼀个逻辑组,然后设置统⼀的测试套件,并通过⼀个命令来执⾏;具体通过TestSuites、TestLoader和TestRunner类来实现的;2)使⽤TestSuites类来定义和执⾏测试套件,将多个可测试加到⼀个测试套件中,还可以⽤TestLoader和TextTestRunner创建和运⾏测试套件,举例如下图();
(图-)4.5使⽤unittest扩展来⽣成HTML格式的测试报告 unittest的扩展可以实现⽣成测试报告。⽣成的的测试报告格式更加友好,既能够查看测试结果,⼜能深⼊各个细节。举例代码如下图() (图-) 测试报告如下图(TestReport)
5、总结 以上所写内容主要是selenium基于python,使⽤WebDriver、Unittest组件,使⽤元素定位⽅式,完成测试⽤例,输出测试报告的简单步骤,具体实际操作中可能会遇到其它问题,具体问题具体解决。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688018368a67194.html
评论列表(0条)