web自动化测试基础介绍
一、为什么要做自动化测试测试框架:
测试平台目前只有少量公司在应用。(是一个不太实际的东西。因为需要应用的基本都是web开发技术,研发的人员更加信向开发,而非测试。)
测试框架目前是自动化测试最为主体的实现形式。(更加像是一个测试工具。开发工期更为简短,维护性更高,学习成本相对较低,上手和使用和推行更加快捷。)
最根本原因是因为测试行业需录的核心技术是测试框架,所以我们需要学会研发测试框架。
二、如何实现一个测试框架
1.一定要关联到实际的业务需求与公司需求。
2.技术的完整性
3.开始实现:
1.从零搭建自动化体系的团队
-1.了解公司具体情况和需求
-2.基于一个系统进行试点
-3.搭建一个demo
-4.开始运行,产出内容
-5.优化与调整,形成稳定的测试框架
-6.启动分享会议
-7.准备培训并启动推广
-8.结合实际的推广过程中的应用,不断调优
2.已有自动化测试框架的团队
-1.熟悉现有的测试框架。
-2.了解核心的测试业务。
-3.基于工作内容和需要,结合测试框架实现你的工作产出。
三、自动化测试框架中关联的技术点
语言的选择:python(80%)、Java(%20不到)
第一阶段
自动化模块: Selenium、Appium、Requests
设计模式: 关键字驱动、POM
第二阶段
数据驱动: Excel、Yami、Json、Py
测试用例: UnitTest、PyTest
测试报告: HTMLTestRunner、Allure
邮件模块: SMTP
第三阶段
配置管理: 环境(服务器、数据库、tomcat等)
日志: Logging、logurn
代码管理: GIT、SVN
持续集成: Jenkins
第四阶段
测试用例的并发: 多任务并发处理机制,异步形态实现用例读取与执行
测试框架分布式的结构设计: 主从节点(通过路由节点下发测试任务,由子节点执行测试结果。最终集成测试完整结束到一体化。)
自动化测试学习中,设计思维能力是最重要的(跟大佬学),其次是编码能力
四、什么是自动化
自动化就是由机器设备代替人为自动完成指定目标任务的过程
优点:
'''
1.减少人力劳动,节约人力成本
2.提高工作效率
3.产品规格统一标准化
4.规模化批量生产
'''
五、什么是自动化测试
自动化测试就是让程序代替人去验证程序功能的过程
六、为什么要使用自动化测试
注意: 想要真正去理解为什么要使用自动化测试,需要明白以下知识点
自动化测试在哪个阶段开始?
功能测试(也就是手工测试)结束之后
手工测试就是由人去一个一个输入用例,得出测试结果的过程。
七、自动化测试分类
1.黑盒测试(功能测试)
2.灰盒测试(接口测试)
3.白盒测试(单元测试)
注意:web自动化测试属于黑盒测试
目的
1.解决回归测试
2.解决模拟压力测试
3.解决兼容性测试
4.提高测试效率,保证产品质量
回归测试:项目在发新版本之后对项目之前的功能进行验证
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同的浏览器(Chrome\Firefox\IE)等等
优点
1.较少的时间内运行更多的测试用例
2.减少人为的错误
3.测试数据存储
4.自动化脚本可重复运行
缺点
1.无可以取代手工测试
2.手工测试比自动化测试发现的缺陷更多
3.测试人员技能要求
知识误区:
1.自动化测试完全可以代替手工测试
2.自动化测试一定比手工测试实用
3.自动化测试可以发现更多的bug
总结
1.自动化测试能代替人为解决繁琐的回归测试验证问题
2.自动化测试脚本设计一次能重复运行
3.模拟多用户操作
4.提高测试效率
注意:当然自动化测试脚本带来的好处不止这几条,后期可以逐一了解更多
八、Selenium、WebDriver
Selenium IDE()已经过时:是一个Firefox插件,用于记录和播放用户与浏览器的交互。 (录制web操作脚本)
'''
1.Selenium:
目前业内最核心的技术就是自动化测试。
最为主流的自动化测试技术就是Selenium
Appium,是基于Selenium继承实现的。
早期是基于QTP来实现的自动化,没啥用了
现在Selenium,本身是FireFox下的一插件, Selenium IDE,主要用于火狐浏览器的U1操作的录制,可以转换为Java, Ruby,JS语言的内容
后来被Google开始关注, Chrome浏览器所支持的浏览器驱动, 主流的Driver:2.ChromeDriver, IEDriver, SafariDriver..。
Selenium核心是某于JS Core来实现的。
Selenium 1.x时代 IDE时代
Selenium 2.x时代WebDriver+IDE
Selenium 3.x时代WebDriver
在现阶段的测试中,只会使用Selenium+WebDriver来实现自动化测试。
3. Playwright,是微软开源的一款Node实现的自动化测试框架。可以完全独立运行(不需要关联到webdriver) ,可以支持绝大多数主流浏览器的访问。对于编程语言的支持也比较好。使用方便,官方文档非常齐全。业内应用相对较少。
4.Puppeteer, 貌似一款自动化测试框架,不太了解.
Selenium版本:
Selenium4的版本目前除了Js版之外,其他的语言都是属于测试版,目前主流的版本是3.141
Selenium IDE:早期是FireFox浏览器下的一个插件,是基于录制回放编辑的形态来实现自动化。在现在IDE推出了一个全新返本,可以支持Chrome浏览器和edge浏览器的录制插件。
'''
九、Selenium + WebDriver
Selenium+WebDriver:目前最为核心的一套自动化UI体系
但是Selenium和WebDriver是两个东西,全都是基于编程的形式来实现的。
十、Selenium Gird
Selenium Grid,传统的自动化测试框架都是基于代码的线性运行来实现的。对于更为复杂、耗费时间成本更高的自动化测试,就会应用更为高阶的方式来实现。比如说多用例的井发,测试框架分布式部署。 Grid就是用于实现测试框架的分布式部署,基于MS形态的架构部署,主从节点。通过主节点下发任务,从节点接收并执行任务,将结果返回至主节点进行记录。
十一、WebDriver
1.不同版本浏览器对应不同的WebDriver
2.不同版本的对应不同版本的WebDriver,除了chrome浏览器之外,其他的浏览器对应的WebDriver版本都可以在selenium官网上了解
chromedriver:http://npm.taobao.org/mirrors/chromedriver
3.chromedriver.exe保存在python根路径下即可
4.浏览器安装在默认路径即可
5.ChromeDriver本身就是一个服务,在Selenium自动化测试中。所有的代码都是不与浏览器直接交互的,只于WebDriver服务进行交互,包含各类的指令数据和返回信息。
十二、Selenium + WebDriver
from selenium import webdriver
# 基本的selenium
# 创建webdriver对象
driver = webdriver.Chrome()
# 访问url
driver.get('https://www.baidu.com')
# 定位到输入文本框进行输入
driver.find_element('id', 'kw').send_keys('自动化测试')
# 定位到百度按钮,进行事件点击
driver.find_element('id', 'su').click()
作者:吴常文
出处:https://blog.csdn.net/qq_41405475
本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。