这篇文章让你明白什么是自动化测试 <接口自动化 web自动化 移动自动化> 一起聊聊自动化测试体系建设思想!!!! 持续更新!!!

本文介绍了自动化测试的起源、类型(接口自动化和UI自动化),强调数据在自动化测试中的核心地位,包括数据驱动的测试用例设计,以及如何从基础的脚本录制到高级的框架设计,涉及Selenium和JMeter等工具的使用。
摘要由CSDN通过智能技术生成
  • 先来看看一张图

目录

从测试到自动化测试

什么是黑盒测试or功能测试

从黑盒测试到自动化测试

那么什么是自动化And测试了?

自动化测试的个人小看法一起聊聊:



只要能看得懂上图测的试屌丝们😊,我们就可以开始聊一下我们测试职业生涯中提升的关键技术栈自动化测试了,自动化测试体系中分为两大类:接口自动化测试 UI自动化测试,这两种类型自动化测试中高级实现方式为代码方式,而代码实现自动化测试方式就会涉及到自动化测试设计模式[测试思想],在测试思想的加持下就会涉及到测试框架设计,从而实现高可复用性测试框架。再者我们来说一下自动化测试的起初从实现的程度上来说是从QTP以及浏览器自带的录制工具,实现回放功能从而达到自动化测试目的,但是初级的自动化测试,是无法满足自动化测试的目的,所以我们想做好自动化测试真正意义上运用到项目上,那么就需要做到中高级的自动化测试方式,下面我们一起来聊聊吧~

从测试到自动化测试

  • 什么是黑盒测试or功能测试

  1. 黑盒测试,顾名思义即为将软件测试环境模拟为不可见的“黑盒”。通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便出入较小亦证明软件程序内部出现问题,需尽快解决。从这里可以看出测试的字面的意思就是在依据需求的情况下在页面进行点击操作,从而验证某个功能的正确性。
  2. 从黑盒测试的解释来看,测试的本质就是数据与数据的交互,校验数据输入输出值是否达到测试的预期值,以及页面UI布局的校验。
  • 从黑盒测试到自动化测试

  1. 从黑盒测试的解释我们可以看出,黑盒测试[功能测试]的关键点在于 1 数据与数据的交互校验 2 UI布局校验,那么自动化测试无论是UI自动化测试还是接口自动化测试,我们想想是不是都有输入输出的数据最后做校验从而得出测试结果了?那么自动化的关键点是在于数据,这点没有人会反驳吧! 那我们接下来聊点自动化测试数据的故事吧。
  2. 自动化测试数据的关键点涉及到什么点了?那么我们来想想自动化测试用例是如何组成的了?
  • UI测试,我们需要的数据是,页面元素操作方式,输入结果,预期结果,结果判断,我们来看看实际的脚本情况。 从下面这个脚本我们就完成一个基本的页面操作了,定位元素,发送数据和点击功能,这也可以称之为一个完整登陆测试用例。
  • 通过UI中的selenium实现的登陆操作了。那么我们看一下我们使用了什么数据了?是不是有页面元素了,操作方式了,输入结果了,那么这样是不是就完成了一个动作执行了,答案显而易见。那么我们UI测试主要应用的点,就是解决一些重复性的功能测试工作,例如:上线主流流程,重复校验复杂的功能,等一系列可能需要重复性的功能测试性工作。
  • 这里先理解一下,后面会详细讲一下UI测试的具体内容。当然这里补充一点web-UI测试以及移动UI自动化测试相同点以及不同点,代码实现原理都是基于selenium页面定位元素来实现的,不同的点在于基于的运行载体不同,一个是浏览器一个是移动端。说到这里我们觉得大概解释清楚UI测试通过代码是如何实现的吧。
  • u = driver.find_element_by_id('userName')
      u.send_keys('admin')
      p = driver.find_element_by_id('password')
      p.send_keys('123456')
      l = driver.find_element_by_class_name('login-form-button')
      l.click()
  • 接口测试,我们需要的数据,api地址,参数,header,请求方式,预期结果,输入输出结果比对,关联接口,测试结果记录等其它,我们来看看实际的脚本情况,从下面的脚本我们就完成一个对接口数据校验的基本操作。
  • 我们常见的接口测试方式get 和 post,我们针对于其它的接口类型测试后面有机会我在写一篇文章具体来说说这些技术问题。从下面接口请求,我们可以看出,我们完成一个接口请求需要的基本参数: url,参数,headers,这样我们就可以完成一个python版本的接口测试。如果我们现在的一个测试场景有多个步骤,那么这个时候就会涉及到多个接口,多个接口也会涉及到前后关联的关系[什么是前后关联:也就是上一个接口的输出结果的某个参数是下一个接口的输入参数]。
  • 说到这里了我觉得大概解释清楚了接口测试通过代码是如何实现的了吧。
  • import requests
    
    # 目标url
    url = 'https://www.baidu.com'
    
    # 向目标url发送get请求
    response = requests.get(url,param,headers)
    
    # 打印响应内容
    print(response.text)
  • 综上所述,无论是UI测试还是接口测试,我们第一个所要关注的点不是所谓的代码如何写,也不是框架如何设计,甚至是测试工具的如何使用。我们首要关注的点在于数据,数据是组成接口或者UI测试的关键,而我们在后续的自动化测试模型设计以及测试框架设计学习中,我们也会发现我们编程中重点关注的是数据的处理,测试用例无论是UI自动化测试还是接口自动化测试,自动化测试用例的组成是由数据组成。
  • 所以说到这里我们再次点提一下,测试的本质是什么了?我觉得是数据与数据的交互,最后校验数据的准确性,而这个在黑盒测试的过程中占比也是占很大的比例,所以无论是才开始想做自动化测试或者已经做过几年的测试屌丝们,请注意不管是功能测试 自动化测试 性能测试 其实本质上是对数据的一种校验。而我们所说的自动化测试,无非就是通过代码的方式来解决我们一些重复校验的一些工作,从而提高测试效率以及测试质量哦! 
  • 那么什么是自动化And测试了?

  1. 首先我们从字面意思来看看什么是自动化了,自动化也就是和机器人一样的自动主动做出一些指定的动作或者在某个特定的时间段做出一些指定的动作且不需要人工干预的行为以及动作,我们可称之为自动化,测试了,测试即为动作,在上面我们也说过什么是黑盒测试这里就不赘述了,那么自动化测试我们做何解释了,我们可以从字面意思可以理解成主动或者在某个特定时间做出黑盒测试的指定动作。
  2. 从实现方案来说来了,我们从以下几个方面来看看:<1> 我们常见的也就是写一个测试脚本点击run,程序就会自动运行执行相关测试动作动作而代码中的动作通常也是我们封装好的方法,我们可以称之为自动化测试。<2> 我们写好测试脚本,通过jenkins定时任务调用测试脚本,脚本会在服务器自动执行相关测试动作,这样的定时执行测试脚本的过程我们也可以称之为自动化测试。<3> 我们简单来聊一下自动化测试工具的自动化,我们常见的开源测试工具jmeter,我们可以在写好的jmeter脚本后,在linux服务器部署好,通过jenkins+ant+jmeter 外加配置好邮箱服务,从而实现自动接口测试发送测试报告的过程。 
  3. 最后我们总结一下,自动化测试实现分为2点,脚本本地运行or脚本+jenkins运行,测试工具本地运行or测试工具+测试工具,这是我们从自动化测试实现方式上来说最直白的解释了,好了小伙伴们你们get到了吗?😊

自动化测试的个人小看法一起聊聊:

  • 我们起初开始学习自动化测试的时候,不要盲目的去追求如何实现的,无论是代码实现还是工具上的实现,我们应该首先明白什么是自动化测试,自动化测试到底是什么与什么之间的交互,这个我们在上面以及提到过。 
  • 我们在明白什么是自动化测试以后,再去追求技术上的实现而技术上的实现,如果你是代码能力不强我们可以先从工具类的自动化实现开始,比如说常见的工具是jmeter实现接口自动化测试,openatxUI自动化测试工具,工具类的学习成本还好~ 也能快速的带你进入到自动化测试的学习以及实战运用中,如果是高级玩家肯定就直接推荐上代码了,这个在网络上框架代码就太多了,比如说常见的单元测试框架pytest+python 数据存储在代码的配置文件中,pytest+python+excel(or 数据库) 数据存储在数据库或者excel中,开源测试web工具+python代码做二次开发 数据存储在web工具页面中 都可以实现相对应的接口自动化或者UI自动化。
  • 那么在说到代码后我一直在强调数据存储的问题,为什么要特意强调这个问题了,其实前面也说过了,自动化测试相对于难点在于数据的管理,因为数据是自动化测试用例组成的最关键的部分,而如何存储自动化测试用例的数据,以及如何处理自动化测试数据就显得尤为重要了。因为这关系到我们做的自动化测试的扩展性,以及实用性。举个例子大部分人做的自动化测试是不是在测试逻辑不变的情况下,每次运行前都会去手动调整很多输入或者预期参数了,那么请问这种类型的测试叫自动化测试吗? 这个问题留到后面我们聊自动化测试框架设计的时候我们再来说吧,但是如果你搜索到这篇文章后你也可以思考一下我刚才的这个问题如何处理了?这里提一点 死数据以及活数据,还有就是自动化测试动态数据池我们可以如何融入到我们的自动化测试中了。好了我们说到这里也从字面意思明白了大体如何实现自动化测试了,这就不耽误大家的时间了。

今天就先写到这里吧~ 我们下次聊什么了,这里有兴趣的小伙伴可以留言说一下 是开始聊一下自动化的设计模式还是自动化测试的框架实现了?当然后面我们可能会聊到很多具体的实现方案以及实际的代码编写方式,比如说多线程去同时开启多个移动端或者web端口进行一些ui自动化测试,或者多协程去做一些接口自动化测试的东西,开始这幅图,也就是后面我会通过博客给大家详细分享一些自动化测试技术以及代码实现的东西,喜欢的小伙伴可以加个关注哦,这些后面再说~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值