自动化测试基础知识:什么是自动化测试?需要学习哪些知识与工具
来源:http://www.tudoupe.com时间:2022-07-25
1、自动化测试概念
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,设计并检讨测试箱后,根据测试例中所述的规格,测试人员按步骤进行,对实际结果与预期结果进行了比较.简言之,自动测试是独立运行测试软件的能力。执行软件的功能,或者让其他工具自行运行。检查软件的内部和外部。自动化测试包括两个概念:
自动化: 程序(或机器、设备等)取代特定目标的人工自动化完成的过程。
测试: 校正系统是否符合要求.
自动测试:程序(或机器、设备等)取代完成系统校正的自动化过程。

那么机器人如何知道人类的需求?关键是编程语言。
机器学习一种编程语言,简单易于强调:安装,机器就学会了。在人类中学习编程语言并不特别困难。有了编程语言,有人机交流的桥梁,剩下的事情,它帮助机器挑选工具。做对应的测试,找到对应的工具,这就是自动化的运作方式。
总之,从枯燥的机械手测试工作开始,向免费软件测试人员介绍了自动化测试,而不是自动化测试工具,让测试人员真正投入精力去提高软件本身的质量。虽然自动化测试可以减少手动测试的工作量,但它不能完全取代手动测试,追求测试自动化只会使企业经营成本大幅上升。

自动化测试的优缺点
◆ 优点:
- (一)提高测试执行效率,节省时间成本;
- (二)使人类自由从事更重要的工作;
- (三)可重用以建立对人民的依赖;
- (四)提高客户满意度;
- (五)提高测试小组的整体水平;
- (六)可大大减少兼容测试的工作量;
- (7)一些测试工作必须通过自动化实现。
◆ 缺点:
- (一)开发测试脚本需要很长时间,而且需要很长时间;
- (2)产品快速迭代,自动脚本也会不断迭代,时间成本高;
- (三)不同项目的自动脚本的重用性非常低;
- (四)短期项目产品自动化价值不高;
- (5)自动化不能完全取代手动测试,以找到错误并达到100%覆盖率;
- (六)自动化更适合回归测试;
- (7)自动化开发过程对软件测试团队的技术要求较高。
手动及自动测试
手测试: 手测试是一个由测试人员逐一执行的例子.然后观察测试结果是否如预期,手动测试通常基于两个原因:(一)缺乏时间和资源;(二)缺乏技术水平。在这些情况下,手动测试可以发挥重要作用。利用手工测试,我们可以定义测试,还可以跟踪测试。
自动化测试:自动化测试分为功能自动化和性能自动化,第一个是通过测试工具(或框架)记录/写测试脚本,测试软件的功能,并核查测试结果的正确性,从而更换部分手动测试工作,实现节约人力成本和时间成本的目标。后者使用性能工具模拟数千个虚拟用户向系统发送请求,这验证了系统的处理能力。

2.自动测试应用
自动测试的前提条件
(一)软件要求不经常发生变化
测试脚本的稳定性决定了自动化测试的维护成本。如果软件要求经常发生变化,测试人员需要根据更改要求更新测试实例和相关测试脚本,脚本本身的维护是代码开发的过程,需要修改、调试,必要时,应修改自动化测试的框架。如果费用不低于使用其储蓄用于测试的费用,那么自动化测试将失败。项目中的一些模块相对稳定,对某些模块的需求非常多样。我们可以自动测试相对稳定的模块,大部分的改变仍然是手动的。
项目周期足够长
对自动化测试要求的确定、自动化测试框架的设计、测试脚本的编写和调试需要相当长的时间才能完成。这种过程本身就是测试软件开发过程,完成需要很长时间。如果项目周期较短,没有 足够 时间 来 支持 这种 进程,然后自动测试成了笑话.
(三)自动测试脚本可重复使用
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
自动化测试使用场景
(一)更频繁地进行回归测试;
(二)任务测试清晰,不经常变化;
(三)每日施工后测试验证;
(四)在多个平台运行相同的测试案例、联合重叠测试和大量重复任务;
(五)长时间的软件维护期;
(六)对工程进度的施加压力不大;
(七)测试软件系统的开发更加标准化,可以保证系统的测试性;
(8)大量自动化测试平台;
(9)测试人员有很强的编程技能;
(10)软件系统的接口稳定,变化不大。
自动测试工具的介绍
自动化测试主流工具介绍:目前市面上自动化工具非常多,我们可以根据测试需求的不同级别来酌情选择,大体上,有三种级别:代码级别、接口/协议级别、界面级别,以下是根据不同级别对应常用工具及特性。
(1) 代码级别:
- ◆XUnit:生成每个测试方法的对象实例、可扩展的声明、测试方法和测试类
- ◆XMock:只适用于面向对象的语言,使用多模式实现详细的仿真
- ◆覆盖:覆盖测试工具
(二)接口/记录级别:
- ◆ LoadRunner:支持所有协议,集中支持HTTP等。
- ◆ SoapUI:支持WebService协议SOAP
- ◆WebLoad:支持HTTP协议
- ◆RPT:HTTP和TCP/UDP协议的关键支持
- ◆ SilkPerformance:重点支持 HTTP 和 TCP/UDP 协议
- ◆HTTPClient,JsOUP:HTTP协议和HTML元素处理
- ◆JMeter:支持HTTP和JMS协议
(3)接口(UI)级别:
- ◆QTP/UFT:支持Windows、Web、Java等网络应用
- ◆RFT:支持Windows、Web、Java等网络应用等。
- ◆测试完成:支持各种应用和第三方组件,具有很强的对象识别能力
- ◆ Selenium/Watir:支持Web应用程序,支持多种平台、多种语言、多种浏览器
- ◆SquiliIDE:基于图像识别的自动测试工具,支持所有应用
- ◆Apium/MonkeyRunner:Android,IOS移动应用

Selenium工具简介
(一)塞伦的特征:
- ◆ 开源,免费;
- ◆多浏览器支持:FireFox,Chrome,IE,Opera,Edge;
- ◆多平台支持:Linux、Windows、Mac;
- ◆多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
- ◆对网页的良好支持;
- ◆简单(API简单)和灵活(由开发语言驱动);
- ◆支持分布式测试例的实现。
(2)Selenium版本:
Selenium已经经历了两个版本,Selenium 1和Selenium 2.0和Selenium 2.Selenium不是单个工具,而是几个插件和库,每个都有自己的特性和应用程序场景。

(三)硒的组成:
◆SeleniumIDE:嵌入Firefox浏览器的插件,实现简单的浏览器操作的记录和播放功能.官方给出自己的行动位置:快速创建错误重演脚本,在测试测试人员时,发现错误后,可以记录由IDE复制的步骤,帮助开发者更容易复制错误。IDE记录的脚本可以转换成多种语言,这帮助我们快速开发脚本。
◆ Selenium Grid:自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快 Web-App 的功能测试。利用 Grid 可以很方便地实现在多台机器上和异构环境中运行测试用例。
◆ Selenium RC 远程控制:Selenium RC(Remote Control 远程控制)是 Selenium 家族的核心部分。Selenium RC支持多种语言编写自动化测试脚本,通过Selenium RC服务器作为代理服务器访问应用程序,因此, 测试 的 目的 已经 实现 。
◆ Client Libraries : 主要用于编写测试脚本的库,用来控制 Selenium Server。
◆Selenium服务器:负责控制浏览器的行为。
◆Selenium Core:由Selenium Server嵌入在浏览器页面中。事实上,Selenium Core是一个JavaScript函数的集合,也就是说,通过这些JavaScript函数,我们可以实现程序来操作浏览器。
◆ Launcher:用于启动浏览器,把 Selenium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的 Http Proxy。
Selenium RC和WebDriver之间的区别
确切的说,在 Selenium 2.0 中,WebDriver可以被看作是Selenium RC的替代品。因为Selenium要保持低级兼容性,因此,Selenium 2.0并不完全放弃Selenium RC。如果你正在开发一个新的自动化测试项目,这是第一次,然后你可以直接使用WebDriver。那 Selenium RC和WebDriver之间的区别是什么呢?Selenium RC是一个在阅读器中运行的JavaScript应用程序,使用浏览器内置的JavaScript 翻译器来翻译和执行 selenese 命令(selenese 是 Selenium 命令集合)。
WebDriver通过本地浏览器支持或浏览器扩展直接控制浏览器。WebDriver是为不同的浏览器开发的,它取代在检测到的Web应用程序中嵌入的JavaScript。关闭与浏览器的集成,因此支持建立更先进的测试,避免JavaScript安全模型所造成的限制。除了浏览器供应商的支持之外,WebDriver还使用操作系统级调用,模拟用户输入。
特别注意: Selenium和WebDriver最初是两个不同的项目,这两个项目已经合并,合并的部分原因是WebDriver解决了Selenium的弱点(例如能够绕过JavaScript的沙盒,我们有一个非常好的API),其中一部分原因是Selenium能解决WebDriver的问题(例如支持广泛的浏览器)。
Python脚本语言的介绍
(1) Python语言简介:
Python是计算机编程语言。它是面向对象的动态类型语言,它最初被设计为编写自动脚本(壳体),随着版本的继续和新的语言功能的添加,越来越多的人用于发展独立、大规模的项目。有些人说我们的软件是用一种特定的语言开发的,因此,自动化测试也必须选择语言;事实上,软件开发语言和软件自动化测试语言不一定是相关的。也就是说,基于 Python (+ Selenium)编写的自动化测试脚本既可以测试基于 Java 开发的 Web 项目,基于PHP的Web项目也可以测试。所以,在选择 Selenium 自动化测试语言时不需要考虑与开发语言的一致性。

(2) 为什么选择 Python ?既然 Selenium 可以支持多语言,如 Java、C#、Ruby、PHP 等,那我们为什么会选择 Pyhton 呢?主要有以下几点原因:
◆首先:简单易于学习。对于较弱的编程能力的初学者,通过自动化测试技术实践,不仅可以掌握自动化测试技术,而且掌握了简单的和功能性编程语言。
其次,Python具有多种功能,可以满足许多不同的项目需求。根据不同的场景选择合适的工具可以大大提高工作效率,例如:
◆UI自动化测试/兼容测试( Python+Selenium)
◆ 接口测试(Python+requests)
◆性能测试(Python+Locust)
◆安全测试(Python+Scapy)
上一篇:苹果最廉价笔记本要来了?被骂到停产的苹果“黑历史”,复活后还有人买吗?
下一篇:没有了
相关新闻
- 2022-07-25 苹果最廉价笔记本要来了?被骂到
- 2022-07-25 Notion:Web3创业团队离不开的协作工
- 2022-07-25 国产格兰菲Arise-GT10C0显卡发布
- 2022-07-25 原创 满血版PCIE4.0固态硬盘,技嘉
- 2022-07-25 在 Google Docs 中插入视频的 3 种方法
- 2022-07-25 美股三大指数集体收跌,科技股普
- 2022-07-25 美国用户调查:14.84%拥有Quest 2头
- 2022-07-25 十年国产软件发展表现强韧,国产
- 2022-07-25 微软承认部分Windows 11设备无法打开
- 2022-07-25 早报 (07.25) | 千亿大整合!“中国神
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
