首页 > 编程知识 正文

自动化测试主要做什么,网站自动化测试

时间:2023-05-06 10:28:05 阅读:140902 作者:693

在开头引用了。 目前,自动化测试并不是什么新鲜事。 或者说,自动化测试的各种方法论层出不穷。 但是,能够理解自动化测试并顺利落地实施的团队还非常少。 接下来用一般的方法介绍自动化测试……

正文共有2410字,阅读约需1分钟。

首先从招聘部门的需求开始吧。 纵观最近的职业机会,说到“软件测试工程师”,基本上都有关于自动化测试的要求。 例如:

了解selenium、appium或其他自动化测试框架

至少熟悉一种面向对象的开发语言,有一定的代码基础

熟悉Java或python,有测试自动化经验和代码阅读能力

了解接口集成测试,并使用接口测试工具,如JMeter、Postman和SoapUI

等等,上述内容不再一一列举。 突然自动化测试在各地开花,测试工程师的自动化测试能力似乎成了标准装备。 本文从自动化测试的要求入手,简单地进行自动化测试盲,努力让大家在一分钟内了解自动化测试。

那么,让我们从“自动化测试”的5个单词开始分析吧。

测试:这个我很清楚。 一个最典型的解释是:“程序测试是为了发现错误而运行的过程。” 这来自于G.J.Myers经典著作《软件测试的艺术》的定义,它展示了测试的本质和过程。

测试是为了发现软件错误而运行的过程,该过程如下所示。

运行测试的软件并执行软件功能

运行其他工具检查软件的内部和外部

总之,是一个过程,是执行的过程。 下面是最常见的测试的图像。

例如,测试负责人请测试工程师遍历软件的所有功能。 该测试工程师通过鼠标、键盘、麦克风、手机屏幕触摸等方式遍历了软件的所有功能。 你把这个称为什么? 熟悉测试的童鞋明白这是传说中的“手目视”。 这是“人肉测试”。

我们经常画这张图,但实际上是这样的。

至此实现自动化,结合上面的说法,自动化测试就是让被测试的软件自己运行,执行软件的功能; 或者,自己运行其他工具,检查软件的内部和外部。

既然测试是一个过程,那么自动化测试是可以自动执行的过程。 下一个要讨论的中心问题是自动。 什么是自动? 机器是自动的。 使机器按照人类的要求遍历软件的所有功能是自动化的。 这样有点不清楚吗?

重点来了,机器。 让机器动起来,这不是“吃鸡”哦。 这是人类命令机器进行操作的。 不知道童鞋们有没有想过,机器怎么知道人类的要求? 在上面的例子中,测试负责人只要告诉测试工程师,就完成了指令的传达。 但是,人类的直接交流要比人类的交流简单得多呢。

首先,机器听不懂“人的语言”。 无论是中文还是英语……

其次,机器默认会的“汇编语言”,大多数童鞋都不会,短期内是学不会的吧。

现在,让我们使用“编程语言”。 是时候拿出我们的另一张图了:

机器学习编程语言,简单得令人讨厌。 安装后,机器就会掌握。 好在人类学习编程语言并不是特别难。 这似乎是可行的。

有了编程语言,就有了人与人之间交流的桥梁,剩下的事情就是帮助机器选择工具。 要进行相应的测试,需要找到相应的工具。 这将自动执行自动化。 到了这里,我希望童鞋们了解基本的“自动”原理。

同样,请仔细描绘这个自动化测试的图像:

然后,我将介绍一些常用工具,以便继续讨论自动化测试。 在进一步讨论之前,让我们看一下测试的一般分类。 这里根据分类维度的不同,可以分为不同的测试。 在这里,我们来认真分析一下。

从软件测试实践过程看,单元测试、集成测试、确认测试、系统测试、验收测试……

从软件测试的方法论看白盒测试、黑盒测试、灰盒测试……

从软件测试的测试角度来看,功能测试、性能测试、兼容性测试、安全测试、探索性测试……

从软件测试的技术水平来看,手动测试、自动化测试、测试开发……

这些维度的分类,只有一部分测试可以通过“人肉测试”的“手工目视”完成,其馀的其实广义概念需要机器。 提取这部分的测试。 系统测试-黑匣子测试-功能测试-手动测试。 确实,这条线是目前软件测试商的重点范围,这个范围之外的地方是自动化测试的武侠之地。

自动化测试接下来讨论一下主流的自动化测试方案吧。 无一例外,它由机器交流的编程语言和机器操作的工具组成。

功能自动化测试

VBScriptQTP(HPuft )、商用功能自动化测试计划

python/PHP/Java/c #/javasc prit/ruby selenium/app ium单元测试框架,开源功能自动化测试方案

在这里稍微介绍一下吧。 Selenium/Appium本身不是测试工具,而是机器操作浏览器的工具。 而且,这个工具能理解多种语言。

Java、C#这两种沉重(zhng )语言

Python,Ruby这两种脚本语言

PHP,JavaScrip

t 这两个专门处理 Web 的语言

工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架,来一起完成这个功能自动化测试方案的构建。

此外,业界还一种暂时临时的方案,就是 Python 2 + Robot Framework + Selenium Library 插件 + 单元测试框架 构成的一种测试方案,这个方案笔者不是非常推荐,主要基于两点:

理念:这是一种基于关键字的方案,那么关键字是 QTP(HP UFT)的特长,并不是Selenium的本意

技术:Python 2 终究是要退出历史舞台的,如果从零开始做自动化测试,还是直接入手 Python 3 吧,然而 Robot Framework 不支持 Python 3……

Python/Java/C#/JavaScprit/Ruby + Gauge,又一款开源的功能自动化测试方案

Thoughtworks 的基于BDD理念的自动化测试工具

Gauge 本身就是完整的测试方案

Gauge 是从需求分析师(BA)到测试工程师(QA)都覆盖的测试方案

Java/Python + Macaca,阿里巴巴的功能自动化测试方案,缺点是文档少

JavaScript + TestCafe,DevExpress 的开源功能自动化测试方案

pure node.js - TestCafe不使用Selenium,并且不需要插件来在实际浏览器中运行测试。 它建立在node.js的顶部,因此它与现代开发工具集成和工作良好

无需额外的设置或配置- TestCafe是所有设置后立即运行测试npm install

完整的测试工具 - 使用单个启动命令,TestCafe启动浏览器,运行测试,收集结果并生成报告

JavaScript + Postman,免费的Web接口功能自动化测试方案

Groovy + SoapUI,开源的Web接口功能自动化测试方案

性能自动化测试

Java/C + HP LoadRunner,商业版性能测试方案

Java + JMeter,开源版性能测试方案

Python + locust,开源版性能测试方案

这里,我们借用一张别人的图,Martin Fowler,敏捷开发方法的创始人之一,他借用金字塔的概念来展示测试的层次。

事实上,自动化测试覆盖了从 UI (功能测试)到契约(接口测试)以及底层代码方法(单元测试)的整个过程,要想很好的掌握自动化测试,那么的确需要以下三种领域的经验积累:

编程语言,面向对象编程优先,因为大量的开源技术方案,都是基于面向对象的编程方式

第三方测试工具和测试框架,这些主要通过官网的文档学习

测试的理念与设计,工具和语言,只是测试的手段,如何准备测试数据,如何设置测试的检查点与测试步骤,这些决定了测试的成败

此外综合的 前端与服务器后端技术,是测试执行的保障。加油吧童鞋们,一分钟过去了么?那么你现在了解到自动化测试了么?如果依旧有疑问,欢迎联系笔者进一步的沟通交流,liu.tingli@qq.com。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。