当前位置:网站首页>自动化测试selenium(一)
自动化测试selenium(一)
2022-07-30 08:16:00 【ZJHFOREVERZJ】
自动化测试selenium一
1.什么是自动化测试
1.自动化测试介绍
自动化测试指软件测试的自动化,在预设状态下(自动化脚本)运行应用程序或系统,预设条件包括正常和异常情况,不需要手工干涉,机器就可以执行,最后评估运行结果,将人为驱动的测试行为转化为机器执行的过程。
自动化测试包括UI自动化、接口自动化、单元测试自动化。
自动化金字塔中,越往下测试效率越高,定位问题越容易主要精力放在单元测试的自动化。
自动化测试的价值:脚本的复用率越高,价值越大。
(1)单元测试
最大的投入应该在单元测试上,单元测试运行的频率也更加高,java的单元测试框架是Junit.
(2)接口自动化
接口测试就是API测试,相对于UI自动化API自动化更加容易实现,执行起来也更稳定
●接口自动化的特点:
●测试时间段:可在产品前期,接口编码完成后介入
●用例维护量:比较少
●适合的项目:接口变动较少,界面变动频繁的项目
常见的接口自动化测试工具有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等。
(3)UI自动化
1.UI自动化特点:
●含义:对系统的界面元素进行操作,用脚本实现模拟用户的使用,完成功能的正常和异常测试。
●测试时间段:项目后期,页面相关性强,必须后期项目页面开发完成后介入
●用例维护量:比较大
●适合的项目:适合界面元素变动较小的项目
2.UI自动化的好处
●降低大型系统由于变更或者多期开发引起的大量回归测试,可以更快进行回归测试,减少大量重复测试的时间
●是优良可靠的测试过程,机器不会出错,减少人为错误
●节约了资源(手工测试后期需要增加人力用于回归测试)
●可以完成很多繁琐的测试(比如测试过程一致,每次输入数据不同)
●能够完成手工测试困难或无法完成的测试(精准计时,如项目10s重新启动)
3.UI层自动化测试框架
1.UI层的测试框架有Windows客户端测试的AutoIT,web测试的selenium,RobotFramework 关键字驱动底层实现语言python,Django接口
2.主要学习Web UI自动化测试框架selenium,selenium有以下优点:
(1)免费
(2)支持多种语言:java,c#,ruby,JavaScript,Python,不管你熟悉那个语言都可以通过selenium完成自动化测试
(3)支持多平台:windows,linux,MAC,
(4)支持多浏览器(兼容性):Chrome,Firefox,edge,Opera,Safari
(5)支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功能。
4.UI自动化测试的适用对象
(1)实施自动化测试的前提条件:需求变动不频繁,项目周期足够长,自动化测试脚本可重复使用。
(2)适合做自动化测试的项目:
●产品型项目:产品型的项目,新版本是在旧版本的基础上进行改进,功能改变不大的项目,但项目的新旧功能都必须重复的进行回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
●机械并频繁的测试,每次需要输入相同、大量的一些数据,并且在一个项目中运行的,比如兼容性测试。
(3)下面情况的项目不适合做自动化测试
●需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低
●项目周期短,自动化脚本编制完成后使用次数不多,性价比低。
●交互型较强的项目,需要人工干预的项目,自动化无法实施。
2.如何实施自动化测试
1.分析:总体把握系统逻辑,分析出系统的核心体系架构。
2.设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精
3.实现:实现脚本,有两个要求一是断言, = 是合理的运用参数化。
4.执行:执行脚本远远没有我们想象中那么简单。脚本执行过程中的异常需要我们仔细的去分析原因。
5.总结:测试结果的分析,和测试过程的总结是自动化测试的关键。
6.维护:自动化测试脚本的维护是一个难以解决但又 必须要解决的问题。
7.分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。
3.selenium介绍
selenium是web应用中基于UI的自动化测试框架,支持多平台,多浏览器,多语言。
现在我们说的selenium,一般指的是selenium2.0,它有selenium IDE,Webdriver,selenium Grid组成。
1.selenium IDE
Selenium IDE一个用于Selenium测试的完成集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。调试过程中可以逐步进行或调整执行的速度,并且可以在底部浏览日志出错信息。
录制的测试脚本可以以多种语言导出,比如java,C#,Python,Ruby等,方便掌握不同语言的测试人员操作。
2.Webdriver
Selenium RC 在浏览器中运行 JavaScript 应用,会存在环境沙箱问题,而WebDriver可以跳出JavaScript的沙箱,针对不同的浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定
语言(Java,C#,Python,Ruby,Perl,JavaScript等)绑定来驱动浏览器对Web元素进行操作和验证。
webdriver的工作原理:
●启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。
●客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议: TheWebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。
●Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。
3.selenium Grid
selenium Grid是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息,可以实现在同一时刻不同服务器上执行不同的测试脚本。
4. selenium+python环境搭建
4.1win10安装python环境
1.去官网下载Python https://www.python.org/getit/
进入官网后选择download(下载)这里下载的是最新版的python3.9.7,直接入下图所示点击即可下载
如果安装其他版本,点击,选择download(下载)然后点击windows
找到我们所要安装的版本,比如python3.9.7
根据系统选择我们要安装的版本,建议下载可执行文件。直接双击就可安装,我的的电脑是win10,64bit,所以选择下载Download Windows x86-64 executable installer
●安装python,双击安装包
环境配置:
参考链接https://blog.csdn.net/qq_27149279/article/details/107178950
()方式一:在安装python时在左下角直接勾选add python to path选项:
(2)方式二:安装完成后,配置环境变量,在环境变量中添加python安装路径:
4.2 验证python是否安装成功
验证python环境是否安装成功:按win + R,启动,输入cmd:
如下说明安装成功:
2.安装Pycharm
4.3 安装selenium
1.复制pip.exe的安装路径,进入cmd执行:cd pip.exe的安装路径
示例路径如下:
2.执行命令:(不推荐使用该命令)pip install selenium
(目前最新版本为4,建议使用3,使用命令pip install Selenium==3.12.0来指定版本下载
)
执行结束图如下:
注意:warning信息不需要关注
3.检查selenium包是否安装成功,进入到python路径下的lib文件夹下(或者cmd 执行命令:pip show selenium)
示例:
4.4 安装驱动
1.注意!!! 安装的驱动必须放在系统环境变量下!
所有浏览器的驱动都在:
https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
查看浏览器的版本,浏览器的版本要和驱动版本一致:
下载好的驱动建议直接放在python路径下,就不用添加系统环境变量了!!!!
下载解压,你会得到一个chromedriver.exe 文件,放在python路径下:
2.火狐驱动 geckodriver.exe
下载地址:https://github.com/mozilla/geckodriver/releases
请根据系统版本选择下载;(如Windows 64位系统),下载解压后将getckodriver.exe复制到python的安装目录文件夹下;
4.5 pyhcharm安装python环境
4.6 配置环境中常见问题
1.webdriver has no attribute “find_element_by_id”
原因:下载selenium没有指定版本,导致版本过高,当前语法不支持
解决办法:cmd执行:
1)pip uninstall selenium
2)pip install Selenium==3.12.0
2.gecodriver needs to be in PATH
原因:驱动存放路径没有添加系统环境变量
解决办法:
1)找到驱动存放路径,复制路径
2)将复制的路径添加到系统环境变量中(PATH里)
3.安装了selenium报错has no attribute Chrome或者Firefox
原因:pycharm没有加上selenium包
解决办法:步骤五重新再执行一遍,点击确定就会出现当前python环境下安装的最新的包
4.绕过百度安全验证
创建驱动对象后加上代码:
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{
'source':'Object.defineProperty(navigator,"webdriver",{
get:()=>undefind})'})
位置如图:
5.selenium+火狐浏览器,不显示alert弹窗
解决办法:
修改火狐浏览器的配置:
修改为自己的文件路径!!
边栏推荐
- 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)
- 【科普向】5G核心网架构和关键技术
- 经典毕业设计:基于SSM实现高校后勤报修系统
- Network/Information Security Top Journal and Related Journals Conference
- Leetcode - 990: equations of satisfiability
- 编程界的“躲猫猫”比赛 | 每日趣闻
- DDR、GDDR、QDR的区别
- R安装包出现error in rawtochar(block[seq_len(ns)]) :
- SQL injection vulnerability (postgresql injection)
- 2022 Hangzhou Electric Multi-School 1st Game
猜你喜欢
Activating data potential Amazon cloud technology reshapes cloud storage "family bucket"
【无标题】
Golang DES 加解密如何实现?
【Flask框架②】——第一个Flask项目
ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
经典毕业设计:基于SSM实现高校后勤报修系统
FPGA基础协议二:I2C读写E²PROM
Leetcode - 990: equations of satisfiability
蓝牙技术|了解蓝牙LE Audio的Auracast广播音频
看完这100个客户需求,我终于知道企业文档管理的秘密
随机推荐
C语言经典练习题(3)——“汉诺塔(Hanoi)“
Kotlin 值类 - value class
hcip实验
The difference between DDR, GDDR, QDR
2022杭电多校第二场
How to implement Golang DES encryption and decryption?
研发人员的悲剧——“庞氏骗局”
leetcode力扣——一篇文章解决多数之和问题
MagicDraw secondary development process
C language classic practice questions (3) - "Hanoi Tower (Hanoi)"
Field interpretation under "Surgical variables (RX SUMM-SURG OTH REG/DIS)" in SEER database
FPGA基础协议二:I2C读写E²PROM
DDR、GDDR、QDR的区别
Flutter 环境变量配置和flutter doctor中的错误解决
如何组装一个注册中心
hcip 第14天学习笔记
Thinking about digital transformation of construction enterprises in 2022, the road to digital transformation of construction enterprises
JS中如何阻止事件冒泡和默认行为
积分专题笔记-积分的定义
【科普向】5G核心网架构和关键技术