×

自动化测试

什么是自动化测试?1.什么是自动化测试

admin admin 发表于2022-09-04 12:34:01 浏览102 评论0

抢沙发发表评论

本文目录

什么是自动化测试


原文

首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如:

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

  • 至少熟悉一门面向对象开发语言,有一定的代码功底优先;

  • 熟悉Java或者python,有一定的测试自动化经验和代码阅读能力;

  • 了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具;

等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。本文就从自动化测试的要求入手,简单的进行自动化测试扫盲,争取让各位在一分钟之内了解自动化测试。

那么我们就从“自动化测试”五个字来剖析。


    一、测试

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

测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容:

  • 运行被测试的软件,执行软件的功能;

  • 运行其他工具,去检查软件的内部和外部。

总而言之,是一个过程,执行的过程。接下来就一张最常见的测试示意图:


    请点击输入图片描述

    确认过眼神的手工测试

比如:测试主管让测试工程师去把软件的所有功能遍历一遍,该测试工程师通过鼠标、键盘、麦克风、手机屏幕触控等,把软件所有的功能,全部遍历了,这个叫做什么?熟悉测试的童鞋明白,这就是传说的“手工目测”呀,这是“人肉测试”。-自动化测试

我们好好的画这张图,实际上是这样的。


    好吧,手工测试

    二、自动化

到这里,结合上面的说法,自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。

既然测试是一个过程,那么自动化测试,就是自动的执行的过程。

接下来我们探讨的一个核心的问题:自动。什么叫做自动呢?让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化。。这样说会不会清晰一点?

重点来了,机器。让机器去动,这可不是“吃鸡”哦,这是人类命令机器去操作。不知道童鞋们有没有思考过,机器怎么知道人类的要求?上面的例子,测试主管只要告诉测试工程师,命令传达就完成了。可是人类直接的沟通,远比人机沟通容易啊。-自动化测试

  • 首先,机器听不懂“人话”,无论中文,英文……

  • 其次,机器默认会的“汇编语言”,应该是绝大部分的童鞋不会,并且短期掌握不来吧。

  • 好吧,用“编程语言”。是时候拿出我们的另一张图了:


  • 这个厉害了吧,自动化测试

    机器学习一个编程语言,轻松和简单到令人发指的地步:安装上去,机器就学会了。好在人类学习编程语言也不是特别难的的事情。看来这个可行。


有了编程语言,就有了人机交流的桥梁,剩下的事情,是帮机器挑选工具。做对应的测试,就需要找到对应的工具,这样自动化就自动起来了。能到这里,我希望各位童鞋了解了基本的“自动”原理。

同样,好好的画这张自动化测试的示意图:


    这个呢?自动化测试示意图


1.什么是自动化测试


自动化测试包含自动化和测试两个概念:
自动化:由机器设备代替人工自动完成指定目标的过程
测试:校验系统是否满足规定的需求
自动化测试:让程序(机器设备)代替人工自动完成系统校验的过程。
如果想系统的学习自动化测试相关的技术,可以了解一下黑马程序员的软件测试课程,里面讲的非常详细。或者论坛里面有也相关基础知识视频
-自动化测试

自动化测试的适用场合


①需求稳定,不会频繁变更
自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;
折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;
②多平台运行,组合遍历型、大量的重复任务
测试数据、测试用例、自动化脚本的重用性和移植性较强,降低成本,提高效率和价值;
③软件维护周期长,有生命力
自动化测试的需求稳定性要求、自动化框架的设计、脚本开发与调试均需要时间,这其实也是一个软件开发过程,如果项目周期较短,没有足够的时间去支持这一过程,那自动化测试也就不需要了;
④被测系统开发较为规范,可测试性强
主要出于这几点考虑:被测试系统的架构差异、测试技术和工具的适应性、测试人员的能力能否设计开发出适应差异的自动化测试框架;
-自动化测试

自动化测试有哪些优势


1. 自动化测试可以替代大量的手工重复性操作, 可以让测试人员留出更多的时间和精力去更加全面的设计测试用例或展开对新功能的测试工作
2. 自动化测试可以大大提高回归测试的效率, 这一点可以充分迎合敏捷开发过程
3. 自动化测试可以让测试人员更加合理的安排测试执行时间, 方便调整工作进度安排
4. 自动化测试可以完成一些手工测试难以达成的测试类型, 譬如性能测试里的高并发场景压测等
5. 自动化测试也可以尽最大程度的避免由于人为原因导致的错误和遗漏
更多实战小技巧可以到网络上找下黑马程序员相关视频,之前在他们官网上看过视频中老师的经验分享。
-自动化测试

自动化测试有哪些缺点


1. 自动化测试无法完全替代手工, 只对重复性大, 执行频率高的手工测试有替代性作用, 毕竟自动化测试要以手工测试过程为基础才能够实现
2. 自动化测试的强壮度不如手工测试来的高, 譬如业务需求发生变化, 自动化程序就需要进行对应修改, 需求变更越大, 自动化测试维护成本就越高
3. 相较于手工测试用例, 自动化测试用例的开发成本也要高出许多, 如果达不到一定的使用次数, 那么基本上就是得不偿失的
4. 自动化测试要基于手工测试步骤实现, 因此无法比手工测试发现更多的缺陷
5. 稳定性不高的自动化测试用例所带来的问题要比没有实现自动化测试的问题更多
-自动化测试

自动化测试有哪些分类


自动化测试的具体分类都有哪些?
功能自动化测试
讲到功能测试,不得不翻出非常出名的测试金字塔,
这里金字塔的顶端往下依次为:UI测试、集成测试、单元测试。
这里简单对三个部分做一下简介:
· UI测试:一般就是指我们产品、交互、UI、QA等相关人员,对系统进行测试和验收。
· 集成测试:在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。一般做的是接口测试。
· 单元测试:关注某一个函数,模块的正确性,一般需要开发人员编写相关的测试代码来进行测试。
这个金字塔在我理解,它主要表达以下几个观点:
· 测试越往底层,测试的效率越高,测试质量保障程度越高
· 测试越往底层,测试的成本越低。因为发现bug越早,成本就越低。
-自动化测试

如何搭建python+selenium自动化测试框架


selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点:

*  免费,也不用再为破解QTP而大伤脑筋

*  小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。

*  这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS 

*  支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome

*  支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。

关于selenium的基础知识与java平台的结合,我之前写过一个《菜鸟学习自动化测试》系列,最近学python,所以想尝试一下selenium的在python平台如何搭建;还好这方法的文章很容易,在此将搭建步骤整理分享。-自动化测试

搭建平台windows 

准备工具如下:

-------------------------------------------------------------

下载python

-------------------------------------------------------------

如果你是新学python,哪果你没有要用的包是必须依赖于pyhton2.x 的,那么请毫不犹豫的选择python3.5吧!

window安装步骤:

1、下载python安装。

根据自己的操作系统32/64 位,选择相应的版本。

安装过程我就没必要描述,我的安装目录为:C:\Python35

2、进入cmd(windows命令提示符)下面输入“python“命令。

(如果提示python不是内部或外部命令!别急,去配置一下环境变量吧)

修改我的电脑-》属性-》高级-》环境变量-》系统变量中的PATH为:

变量名:PATH

变量值:;C:\Python35;C:\Python35\Scripts; 

3、安装selenium

3.1、通过pip 安装

C:\Users\fnngj》python3 -m pip install selenium 

3.2、通过下载包安装

或者直接下载selenium包:

解压,cmd进入目录:

C:\selenium\selenium2.53.5》 python3 setup.py install

===============================================

ubuntu 下安装方式:

1、安装:setuptools

root@fnngj-H24X:~# apt-get install python-setuptools

2、安装pip

root@fnngj-H24X:/home/fnngj/python# tar -zxvf pip-1.4.1.tar.gz

root@fnngj-H24X:/home/fnngj/python# cd pip-1.4.1/ 

root@fnngj-H24X:/home/fnngj/python# python setup.py install

3、安装selenium

root@fnngj-H24X:/home/fnngj/python/pip-1.4.1# pip install -U selenium

恭喜~! 你前期工作已经做了,上面的步骤确实有些繁琐,但是并不难,不过我们已经完成成了,下面体验一下成果吧! 拿python网站上的例子:

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.keys import Keysimport time
browser = webdriver.Firefox() # Get local session of firefoxbrowser.get(“hto.com“) # Load pageassert “Yahoo!“ in browser.title
elem = browser.find_element_by_name(“p“) # Find the query boxelem.send_keys(“seleniumhq“ + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the APItry:
browser.find_element_by_xpath(“//a[contains(@href,’-自动化测试


测试人员如何更快速的使用不同自动化测试工具呢


作为测试人员为了调高测试效率, 由手工测试变为自动化测试, 在自动化测试领域, 自动化测试工具无疑起到了非常核心的作用.下面总结列出了一些最好的自动化测试工具或框架, 提高测试的效率, 它们有潜力可以帮助组织们跟上软件测试变更的趋势:
①.Selenium 是当前针对Web系统的最受欢迎的开源免费的自动化工具, 已经成为Web自动化测试工程师的首选, 尤其是那些有编程或脚本编写能力的测试工程师。很多其它的开源自动化测试工具也是采用的Selenium的核心框架, 比如Katalon Studio, Watir, Protractor, and Robot Framework. Selenium支持非常多的平台(Windows,, Mac, Linux)和浏览( Chrome, Firefox, IE, and Headless browsers),它的脚本可以通过各种不同的语言来编写,比如 Java, Groovy, Python, C#, PHP, Ruby, and Perl等
②Katalon Studio 是一个非常有力的自动化测试解决方案, 它其实是构建在Selenium和Appium框架上的, 所以它可以同时测试Web系统及手机APP应用.(注: 新版本也已经支持对接口的测试, 这个工具支持不同编程水平的测试工程师使用. 不会编程的也可以使用它轻松的开始一个项目的自动化(比如使用Object Spy来录制生成测试脚本),会编程的和高级自动化测试工程师也可以通过它非常快速的创建新库以及维护代码,它可以帮助他们节省很多时间。
Katalon Studio可以与CI/CD(持续集成/持续发布)流程集成, 还可以与测试领域非常常见的工具集成, 比如qTest,JIRA,Jenkins和Git. 它还提供了一个非常棒的功能叫Katalon Analytics,这个功能可以将测试报告用各种图表来展现,比如metrics, charts, and graphs.
③UFT Unified Functional Testing(UFT)是一个知名的商业测试工具(注: 更名前叫QTP)它可以测试非常多的应用,比如接口API, Web services, 桌面程序, Web系统, 手机APP等. 这个工具具有高级的基于图像的识别功能, 也可以重用测试组件。UFT使用Visual Basic脚本语言来处理测试过程。UFT和Mercury公司的一系列测试工具可以很好的集成,比如Quality Center。这个工具也支持与持续集成工具比如Jenkins的集成
④Watir Watir是一款基于Ruby语言的开源免费的Web系统自动化测试工具。Watir支持多浏览器的测试,包括Firefox、Opera、headless Browser、IE等。Watir同样支持数据驱动测试,支持与行为驱动开发模式(BDD)工具的集成,如RSpec, Cucumber等
⑤IBM Rational Functional Tester IBM RFT是一个数据驱动测试的框架可以进行功能测试以及回归测试。它可以测试的应用更广泛,比如:.net, Java, SAP, Flex和Ajax。RTF支持Visual Basic、.net和Java做为测试脚本语言。
RFT可以和IBM公司的管理整个软件生命周期的软件进行良好的集成,比如IBM Rational Team Concert以及Rational Quality Manager ( 注:Rational Functional Tester 功能强大, 容易架设框架, 容易扩展, 但对用户的要也比较高)
想要学习更多的自动化测试工具, 传智播客提供了大量的测试课程,讲解自动化测试工具的使用, 朋友在传智播客学习了软件测试, 目前在新加坡月薪18K
-自动化测试

测试人员要会python吗


做测试人员要懂python。
1、做为测试人员python要学到什么程度?如果你只会基础,对于工作应用那是完全没用,至少你要能干一件事吧。掌握程度当然是越熟练越好。如果有限的情况。至少要到会写testcase 的程度,能写接口。
2、自动化测试:
会用selenium 或者robot-framwork ,你至少要会自己写自定义模块,根据你自动化测试要求写模块功能,需要懂面对对象之封装、继承、多态等等
3、接口测试:
会用python单元测试框架之unittest
4、性能测试:
python框架之locust
-自动化测试

Python自动化测试在源码时代需要学的内容有哪些


python做自动化测试,主要是接口测试和UI自动化测试。 自动化测试还要学习的有很多
第一阶段:Python基础编程
第二阶段:Python高级编程
第三阶段:H5移动开发
第四阶段:数据库编程
第五阶段:后端大项目实战
第六阶段:网络爬虫
第七阶段: shell和自动化运维
第八阶段:高薪课程
-自动化测试