⽬前最主流的⾃动化测试技术selenium
1、Selenium是什么?
Selenium测试直接运⾏在浏览器中,就像真正的⽤户在操作⼀样。
Selenium经历了三个⼤的版本。
主流的⾃动化测试⼯具是QTP,现在已经淘汰。2014年左右selenium开始兴起。
⾃动化功能测试主要是⽤于提升测试⼈员⼯作效率,70%的⼯作时间都是在进⾏UI测试。全部都是基于前端界⾯来实现的交互性操作。尽可能实现前端的交互,⽤于模拟⽤户的实际⾏为。推出了基于JScore的selenium1.0版本。
Selenium ide,已经被淘汰。⽤于录制Firefox浏览器下的web系统脚本。
Selenium2.0 webDriver+IDE。已经被淘汰。
Selenium3.0 webDriver的时代。
APP⾃动化是基于Appium来实现的。Appium是selenium孩⼦。
Selenium是⽬前最主流的⾃动化测试技术,因为跨平台和开源。
跨平台:python,Java,js,c#,PHP等语⾔的使⽤。
2、selenium应⽤场景(⾃动化功能测试应⽤场景)
(1)web UI——selenium主要实现web UI⾃动化测试。
⼀般 UI ⾃动化都是在回归测试阶段来进⾏的。主要⽤于验证流程的正确性,特定功能的正确性。
(2)APP UI
(3)接⼝⾃动化
3、RobotFramework环境部署
RobotFramework简称RF,是⽬前市⾯应⽤相对⽐较主流的⼀个测试框架,全部基于Python实现的⼀款开源跨平台的测试框架。
⽀持OS与windows系统的运⾏。
⽀持WebUI、APPUI、接⼝的⾃动化测试(基于不同的模块来实现不同的业务)。
⽬前⽽⾔仅有的⼀个具备有GUI界⾯的框架。
RF不需要懂python编程就可以操作。具备有独有的表格编程格式。
环境搭建:
1.安装python。——⽀持最⾼版本python3.7?
2.安装RF组件:pip install robotframework、pip install robotframework-ride
3.启动⽅式:在python37/Scripts/ride.py启动。——选择的⽅式打开(启动)
4.安装⾃动化测试相关组件:pip install robotframework-seleniumlibrary
5.下载webdriver到python的安装路径下。
PS:如果安装时出现read timeout异常,就添加--default-timeout=1000。
⼀、web⾃动化测试
1、⾃动化基础
测试流程,从⼿⼯转换为⾃动化实现形式。
⾃动化在实际执⾏的时候,不会考虑整个流程是否流畅,只会依照原有的动作进⾏机械化执⾏。
2、⽬前主流的⾃动化实现
基于selenium+web Driver来实现的。
3、环境搭建——基于python的selenium实现
(1)安装python
(2)安装Pycharm
(3)安装Selenium+WebDriver
pip直接安装Selenium;
WebDriver的安装:例如安装chromDriver,⾸先直接百度chromDriver,点击chromDriver Mirror会得到所有chromDriver版本。根据⾃⼰的chrom浏览器版本下载对应的chromDriver。
如果没有对应的chromDriver版本,就随便点击⼀个chromDriver版本(⽐如2.46版本的),得到其中的,根据其中的所⽀持浏览器版本到对应的chromDriver版本。然后下载chromDriver。
下载完成后,会得到⽂件,将其放到python安装的根⽬录下。
4、应⽤实列
(1)导环境:⼯程项⽬点击File下的Settings,点击⾥⾯的Project的Project Interpreter进⾏配置。
(2)建包(New->Python Package)、建python⽂件(New->Python File)
5、场景
(1)⾯试⾃动化测试岗位,⼀定会问及的内容:测试框架的设计。
(2)学习⾃动化的⽬的:设计⼀款独属于⾃⼰的测试框架。现阶段测试框架的核⼼内容⼀定是基于关
键字驱动的。
1、解决代码冗余
目前流行的编程语言2、解决可读性
3、解决维护性
4、解决代码的复⽤性
最根本的解决⽅式:关键字驱动(selenium的⼆次封装)
——关键字驱动最⼤的劣势:没有办法结合到⼀个系统完全100%的契合⼀个系统的⾃动化测试。只能做通⽤性的项⽬⾃动化,类似于研发⼀个iframe⼯具,只能对⼀个系统进⾏泛泛的⾃动化测试,没有办法做精。
——PO模式完全契合⼀个系统,本⾝的业务和实际存在的流程来进⾏⾃动化测试的设计和管理。100%契合。
6、数据驱动
将代码与数据进⾏分离,单纯由数据组成⽂件,再由⽂件来驱动关键字,最终实现整个⾃动化的流程。
在unittest中,通过ddt来实现。ddt全称叫做data driver test,安装ddt通过pip install ddt。
可以直接读取yaml⽂件。通过pip install pyyaml安装。
xlrd模块——excel读取(.xlsx⽂件)
7、关键字驱动
(1)当调⽤⼀个特定的关键词的时候,就可以执⾏⼀个操作?
(2)关键字驱动已经⾮常⼤程度降低了冗余,提⾼了代码的可阅读性。
8、关键字驱动+数据驱动形式下实现的⾃动化测试框架的设计模式:
读取到数据,基于固定格式的数据内容进⾏拼接,拼接后的内容作为关键字所需要的参数,进⾏传⼊。从⽽执⾏对应的关键字。再将结果与预期结果进⾏对⽐,从⽽获得单条测试⽤例执⾏是否通过的结果。
9、UnitTest
Python安装时就已经默认封装好了UnitTest框架,调⽤框架的时候只需要通过直接导⼊(import)unittest包即可实现;
主要⽤于管理测试⽤例和实现数据驱动。
UnitTest的基本⽤法:
Python中相对⽐较流⾏的⾃动化测试框架UnitTest,PyUnit,在Java中有⼀个叫做JUnit的测试框架,早期主要是⽤于做单元测试,随着⾃动化更新,能够完整的结合Selenium、Appium、Requests等实现UI⾃动化与接⼝⾃动化。
四⼤特点:
1、TestCase:测试⽤例,所有的⽤例都是直接继承于unittest.TestCase类。
2、TestFixture:setUp和Teardown,作为前置条件和后置条件。
3、TestSuite:测试套件。
4、TestRunner:测试运⾏器。⼀般与TestSuite⼀起使⽤。
5、断⾔(assert):在UnitTest中封装好了成熟断⾔,可以直接被调⽤。断⾔:⾃动化测试主要⽤于对流程来进⾏的测试,断⾔就是⾃动化测试中的预期结果与实际结果的对⽐,其本⾝就是if else。
UnitTest语法规则:
1、UnitTest中,测试⽤例定义都是以test开头
2、⽤例排序与写的顺序⽆关,排序是遵循A-Z,a-z,0-9
注意执⾏顺序!1-9,a-z。
Skip操作:
跳过测试⽤例的执⾏,是通过装饰器来执⾏的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论