自动化测试以及selenium原理详述

一、自动化简介

1、什么是自动化?
看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。

例如:
了解 selenium、appium或者其他自动化测试框架
至少熟悉一门面向对象开发语言,有一定的代码功底优先
熟悉Java或者python,有一定的测试自动化经验和代码阅读能力

2、自动化解读:

自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。
让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化。

3、自动化测试

主流的自动化测试方案,无一例外,都有人机沟通的编程语言,加上机器操作的工具来组成。
VBScript + QTP(HP UFT),商用功能自动化测试方案
Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + Python(unittest)单元测试框架,开源功能自动化测试方案,Selenium/Appium 本身不能算是测试工具,而只是机器用来操作浏览器的工具,工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架,来一起完成这个功能自动化测试方案的构建。

4、自动化测试内容

自动化测试覆盖了从 UI (功能测试)到契约(接口测试)以及底层代码方法(单元测试)的整个过程,要想很好的掌握自动化测试,那么的确需要以下三种领域的经验积累:
编程语言,面向对象编程优先,因为大量的开源技术方案,都是基于面向对象的编程方式。
第三方测试工具和测试框架,这些主要通过官网的文档学习。
测试的理念与设计,工具和语言,只是测试的手段,如何准备测试数据,如何设置测试的检查点与测试步骤,这些决定了测试的成败。

5、自动化测试的发展

第一代的自动化测试大概在15年前开始,透过硬件的方式录制键盘的输入并播放,但缺少检查点(checkpoint)的功能,而且测试脚本很难维护。
第二代的自动化测试则大约在10年前开始的,这时已经由硬件转变成透过软件录制/播放(capture/playback)的方式产生测试脚本(), 并且也增加了检查点的功能,可以对软件做验证,测试的范围也比硬件方式的自动化方式大了许多。比较大的问题是测试脚本也是一种程序语言,所以测试人员也需 要懂程序语言,换句话说就是要会写程序。而且当软件有变动时,测试脚本也需要同步更新,这对测试人员来说是一大挑战,测试人员常常就是整个测试脚本再重新 录制一遍。

在2001年开始了第三代的自动化测试称为「测试框架(test framework)」,主要是把测试脚本给抽象化(abstraction)(注:如Keyword-Driven Test),让非技术人员(如系统分析师、使用者等)即使不懂测试脚本,不会写程序的情况下,也可以使用自动化测试工具建立自动化测试个案。
第四代Mercury Business Process Testing:专注于业务需求的自动化测试。随着测试仪器和测试技术的不断提高,自动化测试技术也经历了不断的完善、提高和发展的历程。

自动化测试发展趋势预测:
<1>、测试任务复杂、工作量大,对侧试系统的功能、性能提出更高的要求。
<2>、测试速度快、精度高,测量准确度高。
<3>、长期进行定时或不间断测试。
<4>、危险或测试人员难于进入的场地的测试。
<5>、延长测试设备本身寿命。

6、自动化测试优缺点

自动化测试优点:

a) 节省人力,只要代码维护的好,不需要那么多人就可完成测试
b) 节省时间,测试脚本可以晚上或者是周末跑测试脚本
c) 优化资源分配,在运行测试脚本的同时,QA可以做其他事,比如设计新测试用例
d) 方便回归,极大提高效率
e) 增加软件的可信度,测试是机器执行的,排除了手工测试时因人为情绪而发生的随意性或疏忽性,测试结果更可信
f) 能完成手工不易控制的工作,比如采集系统cpu占有率信息,手工计算很复杂,还要进行数据比对,使用脚本更简单,更方便。

自动化测试缺点:

a) 脚本维护成本高,尤其是版本变动比较大,对项目来说,是潜在的风险
b) 不易发现新bug

二、如何独立开展web端自动化

1、主流的web自动化测试工具:

SELENIUM可以说是测试WEB最全面的开源自动化工具, 它可以在WINDOWS, LINUX, MAC 和 SOLARIS 上运行, 而且可以几乎用任何一种编程语言进行构建, 你可以用你熟悉的语言包括 JAVA, C#, PERL, PHP, PYTHON 和 RUBY。 它可以测试的浏览器有IE, FIREFOX, OPERA 和 SAFARI。
WATIR 是另一个在国外非常流行的自动化测试框架。
WEBDRIVER 是另一个GOOGLE 正在用的自动化测试软件, 语言是用JAVA

2、Selenium的特点

<1>、开源,免费
<2>、多浏览器支持:Firefox、Chrome、IE、Opera、Safari
<3>、多平台支持:Linux 、windows、Mac
<4>、多语言支持:Java、Python、ruby、PHP、C#、JavaScript
<5>、对web 页面有良好的支持
<6>、简单(API 简单)、灵活(用开发语言驱动)
<7>、支持分布式测试用例执行

3、 Selenium家族介绍

selenium RC: selenium Server+Client Libraries。其中Selenium Server负责控制浏览器的行为。而Client Libraries则是给测试人员编写测试案例时用来控制selenium Server的库。
selenium IDE:记录与浏览器的交互以创建测试用例。 之后,可以使用播放选项重新运行测试用例。
selenium CORE:执行测试代码逻辑,记录测试结果,完成测试。
selenium GRID:控制多台机器多个浏览器执行测试用例。

4、Selenium环境部署

<1> python安装
官网下载python安装包,选定路径安装并配置环境变量
<2> 安装pip
https://pypi.org/project/pip/ 下载压缩包
<3> 安装selenium
输入pip install -U selenium 通过pip安装selenium
<4> 安装浏览器驱动
5 验证webdriver启动浏览器和关闭浏览器

5、Selenium(WebDriver)原理

在这里插入图片描述
<1>、.selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过Webdriver启动浏览器驱动程序chromedriver.exe

<2>、通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id

<3>、打开浏览器,绑定特定的端口,把启动后的浏览器作为webdriver的remote server

<4>、打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过RemoteConnection链接到remote server,然后使用execute方法调用_request方法通过urlib3向remote server发送请求

<5>、浏览器通过请求的内容执行响应对应动作

<6>、浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Selenium 是一个用于自动化 Web 浏览器操作的 Python 库。它可以模拟用户在浏览器中的行为,如点击、输入、提交表单等。Selenium 可以与各种不同的浏览器(如 Chrome、Firefox、Edge 等)进行集成,并且支持多种编程语言,包括 Python。 在 Python 中使用 Selenium 进行自动化测试,你需要首先安装 Selenium 库。你可以通过 pip 命令来安装,如下所示: ``` pip install selenium ``` 安装完毕后,你还需要下载对应浏览器的 WebDriver,WebDriver 是 Selenium 的一个核心组件,它负责与浏览器进行通信。你可以通过浏览器的官方网站或者 Selenium 官方文档找到对应的 WebDriver 下载地址。 一旦安装好 Selenium 和对应的 WebDriver,你就可以开始编写自动化测试代码了。你可以使用 Selenium 提供的 API 来控制浏览器进行各种操作,如打开网页、查找元素、填写表单等。 以下是一个简单的示例代码,演示了如何使用 Selenium 在 Chrome 浏览器中打开百度并搜索关键词: ```python from selenium import webdriver # 创建一个 Chrome 浏览器对象 driver = webdriver.Chrome() # 打开百度首页 driver.get("https://www.baidu.com") # 根据 ID 获取搜索框元素,并输入关键词 search_box = driver.find_element_by_id("kw") search_box.send_keys("Python 自动化测试") # 提交搜索表单 search_box.submit() # 关闭浏览器 driver.quit() ``` 通过编写类似这样的代码,你可以实现更复杂的自动化测试功能,如点击按钮、选择下拉框、验证页面元素等。Selenium 还提供了丰富的 API 文档和示例代码,可以帮助你更好地理解和使用它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值