01 selenium发展及原理、环境部署

本文详细介绍了Selenium的发展、原理以及环境部署,包括WebDriver的使用,重点讲解了如何用Python结合Selenium进行Web自动化测试,如操作浏览器的基本方法。文章还涵盖了自动化测试的概述、优缺点和相关工具,强调了自动化测试在软件开发中的重要性。
摘要由CSDN通过智能技术生成

selenium发展及原理、环境部署


前言

随着时间的推移,软件增加的新功能会越来越多,脚本规模越来越大,执行人工测试的时间越来越长。对于人工测试的依赖开始变得棘手,因此,开发人员开始寻找替代方案,自动化 UI 测试开始被注意,这会用自动化框架代替人工继续运行相同的回归测试脚本,本文就介绍了selenium发展及原理、环境部署。


一、自动化测试概述

(一)生活中的自动化

  1. 什么是自动化?

    • 由机器设备代替认为自动完成指定目标的过程
    • 生活中的自动化:
      链接: link
  2. 自动化趋势

    • 减少人力劳动
    • 提高工作效率:
    • 产品规格统一标准
    • 规模化(批量生产)

(二)软件中的自动化

  1. 什么是自动化?
    • 让工具、程序(代码)代替人为去验证程序功能的过程
  2. 为什么做自动化
    • 解决回归测试(新版本正式测试之前的问题回归以及周边功能的验证)-冒烟测试(主干测试)
    • 解决压力测试(多用户操作软件,统计软件服务器处理多用户请求的能力)-天猫双11处理业务的峰值
    • 解决兼容性测试(兼容不同的软件环境,如浏览器、操作系统,分辨率等)
    • 提高测试效率,保证产品质量

(三)自动化测试相关知识

  1. 自动化测试什么阶段开始?

    • 功能测试稳定的版本 (手工测试) -->》 web UI自动化
  2. 自动化测试所属分类?

    • 黑盒测试(功能测试-web UI自动化测试) --系统测试
    • 灰盒测试(接口测试接口自动化测试) --集成测试
    • 白盒测试(单元测试) -单元测试 unittest
      • java --junit
      • 测试按照阶段划分:单元测试-白盒测试、集成测试接口测试、系统测试- ( 黑盒、功能UI、兼容、压力)、验收测试

(四)自动化测试优缺点及误区

  1. 优点
    • 较少的时间内运行更多的测试用例
    • 自动化脚本可重复运行
    • 较少人为的错误
    • 测试数据存储 --数据驱动
  2. 缺点
    • 不能取代手工测试
    • 手工测试比自动化测试发现的缺陷更多
    • 测试人员技能要求高
  3. 误区
    • 自动化测试完全替代手工测试
    • 自动化测试一定比手工测试厉害
    • 自动化可以发现更多bug

(五)自动化测试分类

  1. web -(UI)自动化测试—》B/S
  2. 移动(App)-UI自动化猜测是–》手机上的应用
  3. 接口-自动化测试
  4. 性能-自动化测试
  5. 单元-自动化测试

(六)自动化工具介绍

  1. QTP(收费)
    • QTP是商业的功能测试工具,收费,支持、桌面(c/s)自动化测试–VBS
  2. Selenium(开源)
    • Selenium是开源的web软件,免费,主要做功能测试
  3. Appium
    • Appium是开源的App自动化测试工具,免费,主要做App项目(Android,IOS都支持)
  4. Jmeter(开源、、接口、性能)
    • Jmeter是由Apache公司使用java语言开发的一款测试工具,支持web、接口、性能测试
  5. LoadRunner
    • LoadRunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试
  6. Robot Framework
    • RobotFramework是一个基于Python可扩展的(关键字驱动)的测试自动化的框架

(七)主流工具

  1. web自动化测试:Selenium、Robot Framework、Airtest 、QTP
  2. App自动化测试:Appium、MonkeyRunner、UIautomation、Airtest
  3. PC(C/s)客户端自动化测试:
  4. 接口自动化测试: Jmeter、 Postman、 HttpUnit、 RestClient 、
    Python+requests
  5. 云测平台: Testin、 Testbird —兼容性测试
  6. 性能测试: Jmeter、LoadRunner-HP

二、 Selenium介绍

(一)什么是Selenium

  1. 概念:
    • Selenium是一个用于Web应用程序测试的框架;中文意思(硒)
    • B/S架构 browser 浏览器 C/S架构client 客户端安装好客户端
  2. Selenium 特点: API(接口)
    • 开源软件:源代码开放,可以根据需要来增加工具的某些功能;
    • 跨平台: Linux、 Windows、MacOS
    • 核心功能:就是可以在多个浏览器上进行自动化测试,Chrome,Firefox,lE,Safari,opear
    • 多语言: java、 python、C#、JavaScript、Ruby等
    • 成熟稳定:目前已被google、百度、腾讯等公司广泛使用
    • 功能强大:能够实现类似商业工具的大部分功能,因为开源,可实现定制化功能。
      • 配置: Java+ Selenium
      • 配置:Python+Selenium

(二)Selenium发展史

  1. 用简单的公式表示为:
    • Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC

    • Selenium 2.0 = Selenium 1.0 + WebDriver

    • Selenium 3.0 = Selenium 2.0 - Selenium RC(Remote Control)

      这里附上“虫师”的博客链接: ‘请点击这里’


三、Selenium+WebDriver环境搭建

(一)什么是WebDriver

  1. WebDriver是一种用于web应用程序的自动化测试工具
  2. 它提供了一 套友好的API;
  3. WebDriver完全就是一 套类库, 不依赖与任何测试框架,除了必要的浏览器驱动;
  4. 说明:
    • API:应用程序接口说明
    • webDriver类库内封装非常多的方法,需要使用这些方法,就需要友好的调用命名规则

链接: 点击阅读API文档手册


(二)WebDriver支持的浏览器&语言

  1. 浏览器
    • FireFox(geckodriver)
    • Chrome(ChromeDriver)
    • IE(InternetExploreDriver)
    • Opera(OpearDriver)
    • Safari(SafariDriver)
  2. 浏览器优缺点
    • Firefox, Chrome:对元素定位和操作具有良好的支持,同时对JavaScript支持也非常好
    • IE:只能在Windows平台运行,运行速度慢
  3. 语言
    • Python
    • Java
    • PHP
    • JavaScript
    • C#
    • Perl
    • Ruby
  4. 语言优缺点
    • Python:易学、操作简单、流行趋势
  5. web自动化测试环境:
    • Python --Python运行的环境
    • IDE --pycharm pycharm安装和配置
    • 浏览器 --Chrome/firefox --安装好浏览器
    • 对应浏览器的驱动应用 --chrome驱动/firefox驱动
    • Selenium

(三)Selenium环境搭建

  1. 具体操作参考附件安装Selenium.docx

(四)Selenium WebDriver工作原理

  1. 乘客打车时的操作:
    • 告诉出租车司机去哪里,大概怎么走
    • 出租车司机:按照乘客的要求来操控出租车
    • 出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地
  2. 在WebDriver中也有类似的三个角色:
    • 工程师:写自动化测试代码发送请求给浏览器的驱动(比如火狐驱动)
    • 浏览器驱动:解析这些自动化测试的代码,解析后把它们发送给浏览器
    • 浏览器: 执行浏览器驱动发来的指令,并最终完成工程师想要的操作。
  3. 从技术上解释下WebDriver的工作原理:
    • WebDriver API ( 基于Java、Python、C#等语言),对于java语言 来说,就是下载下来的Selenium的Jar包,比如Selenium-java-3.8.1 .zip包,代表Selenium3.8.1 的版本
    • 浏览器的驱动( browser driver),每个浏览器都有自己的驱动,均以exe文件形式存在(比如谷歌的chromedriver.exe、火狐的geckodriver.exe 、IE的IEDriverServer.exe)
    • 浏览器,浏览器当然就是我们很熟悉的常用的各种浏览器(IE、 Firefox、 Chrome)

四、Python+Selenium实操

(一)操作浏览器的基本方法

场景:Python调用webdriver框架中的API,对浏览器做一些常规的操作,比如打开、前进、后退、刷新、截屏、退出等操作

  1. 实例对象,打开浏览器
  2. 打开网页:get(url)
  3. 刷新:refresh()
  4. 前进:forward()
  5. 后退:back()
  6. 截屏:get_screenshot_as_file(保存路径)
  7. 退出:close(),quit()
from selenium import webdriver
import time

#1:实例对象,打开浏览器
driver = webdriver.Chrome()
#2:打开网页
driver.get('https://www.baidu.com')
#3:刷新
time.sleep(2)
driver.refresh()
#4:前进,后退
driver.get('https://www.jd.com')
time.sleep(1)
driver.back() #后退
time.sleep(1)
driver.forward() #前进
time.sleep(1)
#5:截屏
driver.get_screenshot_as_file('jd.png')
#6:退出
driver.quit()

总结

就酱紫啦
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值