自动化测试主要做什么,网站自动化测试工作,自动化测试是测试什么
开头引用。目前,自动化测试并不是什么新鲜事。换句话说,各种自动化测试方法层出不穷。然而,很少有团队能够理解自动化测试并成功实现它。接下来,用通用方法引入自动化测试.
正文2410个字,阅读时间1分钟左右。
先说招聘部门的需求。看最近的职业机会,说到“软件测试工程师”,基本上都有自动化测试的要求。例如:
了解selenium、appium或其他自动化测试框架。
熟悉至少一种面向对象的开发语言,有一定的代码基础。
熟悉Java或python,具有测试自动化经验和代码阅读能力。
了解接口集成测试,使用JMeter、Postman、SoapUI等接口测试工具。
等等,以上内容就不一一列举了。突然自动化测试遍地开花,测试工程师的自动化测试能力似乎成了标配。本文从自动化测试的需求入手,简单做了一个自动化测试盲,试图用一分钟的时间让大家了解自动化测试。
那么,我们就从“自动化测试”这五个字开始分析吧。
测试:这个我很清楚。一个最典型的解释是:“程序测试是一个运行来发现错误的过程。”这来自于G.J.Myers的经典著作《软件测试的艺术》的定义,说明了测试的本质和过程。
测试是一个寻找软件错误的过程。过程如下。
运行测试软件并执行软件功能。
运行其他工具检查软件的内部和外部。
简而言之就是一个过程,一个执行的过程。下面是最常见的测试图像。
例如,测试领导要求测试工程师遍历软件的所有功能。测试工程师通过鼠标、键盘、麦克风、手机触屏等遍历了软件的所有功能。你管这叫什么?熟悉的童鞋都明白,这就是传说中的“手视觉”。这是一次“人肉测试”。
我们经常画这幅图,其实是这样的。
至此,实现了自动化。结合上面的说法,自动化测试就是让被测软件自己运行,执行软件的功能;或者,自己运行其他工具,检查软件内外。
因为测试是一个过程,所以自动化测试是一个可以自动执行的过程。下一个要讨论的中心问题是自动化。什么是自动的?这台机器是自动的。让机器按照人的要求遍历软件的所有功能是自动的。这是不是有点不清楚?
重点来了,机器。让机器动起来,又不是“吃鸡”。这是人类命令机器操作的。不知道童鞋有没有想过,机器是怎么知道人类的要求的?在上面的例子中,测试负责人只需要告诉测试工程师完成指令的传输。然而,直接的人类交流比人类交流简单得多。
首先,机器听不懂“人类语言”。不管是中文还是英文.
其次,大部分童鞋默认学不会“汇编语言”,所以短时间内学不会。
现在,让我们使用“编程语言”。是时候拿出我们的另一张照片了:
学机器编程语言很烦。安装后,机器将掌握。好在人类学习编程语言并不是特别难。似乎可行。
有了编程语言,人与人之间就有了沟通的桥梁,剩下的事情就是帮助机器选择工具。要进行相应的测试,我们需要找到相应的工具。这将自动执行自动化。在此,希望童鞋们能明白基本的“自动”原理。
同样,请仔细描述这个自动化测试的图像:
然后,我会介绍一些常用的工具来继续自动化测试的讨论。在进一步讨论之前,我们先来看看测试的一般分类。这里根据分类维度的不同,可以分为不同的测试。这里,我们来仔细分析一下。
从软件测试、单元测试、集成测试、确认测试、系统测试、验收测试的实践过程来看.
从软件测试的方法论来看,白盒测试、黑盒测试、灰盒测试…
从软件测试的角度来看,功能测试、性能测试、兼容性测试、安全性测试、探索性测试.
从软件测试的技术层面来说,有手工测试、自动化测试、测试开发.
这些维度的分类,只有一部分测试可以通过“人肉测试”的“人工目测”来完成,其余的宽泛概念其实都需要机器。选择测试的这一部分。系统测试-黑盒测试-功能测试-手动测试。的确,这条线是目前软件测试人员的重点范围,这个范围之外的地方就是自动化测试的武功所在。
自动化测试接下来,我们来讨论一下主流的自动化测试方案。无一例外的由机器通讯的编程语言和机器操作的工具组成。
自动功能测试
商业功能自动化测试计划
python/PHP/Java/c#/JavaSCprit/Ruby Selenium/app ium单元测试框架,一个开源的功能自动化测试方案
这里稍微介绍一下。Selenium/Appium本身并不是一个测试工具,而是机器操作浏览器的工具。而且,这个工具可以理解很多语言。
Java zhng C#是两种重度语言。
Python和Ruby是两种脚本语言
PHP,JavaScrip
t这两种处理网络的语言。
工具加上指定的语言允许机器操作浏览器,但此时无法进行测试,所以我们需要每种语言自己的单元测试框架来共同完成这个功能自动化测试方案的构建。
另外,业内还有一个临时方案,就是Python 2机器人框架Selenium库插件单元测试框架组成的测试方案。这个方案笔者不是很推荐,主要基于两点:
想法:这是一个基于关键词的方案,所以关键词是QTP(惠普UFT)的专长,而不是Selenium的初衷。
技术:Python 2终究要退出历史舞台。如果从零开始做自动化测试,最好直接从Python 3开始。然而,机器人框架不支持Python 3.
python/Java/c#/Java sprit/Ruby Gauge,另一个开源的功能自动化测试方案
基于BDD概念的Thoughtworks自动化测试工具
量规本身就是一个完整的测试方案。
Gauge是一个从需求分析师(BA)到测试工程师(QA)的测试方案。
阿里巴巴的功能自动化测试方案Java/Python Macaca,缺点是文档少。
Test Cafe,DevExpress的开源函数自动测试方案
Pure node.js-TestCafe不使用Selenium,不需要插件在实际浏览器中运行测试。它建立在node.js之上,因此它与现代开发工具相集成,并且运行良好。
不需要额外的设置或配置——test cafe将在所有设置完成后立即运行测试npm安装。
完整的测试工具——使用一个启动命令,TestCafe启动浏览器,运行测试,收集结果并生成报告。
JavaScript Postman,一个免费的Web界面功能自动测试方案
Groovy SoapUI,一个开源的Web界面功能自动测试方案
自动性能测试
Java/C HP LoadRunner,商业性能测试方案
Java JMeter,一种开源的性能测试方案
Python locust,一个开源性能测试方案
这里借用一个别人的图,敏捷开发方法的创始人之一马丁福勒,他借用了金字塔的概念来表示测试的水平。
其实自动化测试涵盖了从UI(功能测试)到契约(接口测试)和底层代码方法(单元测试)的全过程。如果你想掌握好自动化测试,你真的需要在以下三个领域积累经验:
语言,首选面向对象编程,因为大量开源技术方案都是基于面向对象编程的。
第三方测试工具和测试框架,主要是从官网的文档中了解到的。
测试的概念和设计,工具和语言只是测试的手段,如何准备测试数据,如何设置测试检查点和测试步骤,决定了测试的成败。
此外,完善的前端和服务器后端技术是测试执行的保障。来吧,童鞋们,一分钟过去了吗?那么你现在了解自动化测试吗?如果仍有疑问,请联系作者liu.tingli@qq.com进行进一步沟通。