自动化测试开篇介绍(二)–自动化测试概述

1.自动化测试概述

1.1 什么是自动化测试?

  • 狭义自动化测试

通过工具记录或者编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。
输入+动作=输出  我们把“自动化测试”看成基于产品或项目UI层的自动化测试

  • 自动化测试

自动化测试包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化(性能测试:模拟很多用户并发的访问某个网站,也可以算自动化测试)
  • 分层自动化测试

自动化测试开篇介绍(二)--自动化测试概述

单元测试(unit):投入产出品高,代码有同源性,对测试人员代码要求比较高
为啥开发不做?没有人约束,没有衡量的标准,单元测试的覆盖率做到一个什么程度可以提测。在提测之前,单元测试覆盖率达不到百分之多少,拒绝接受测试。
功能测试覆盖率,在网站上点击功能,每行代码执行了多少

接口测试(service):相对UI是稳定的,变动小,能在接口层做的东西要充分,投入产出比适中。如果这个层没有什么问题,UI层只是一个展现,用户看不见接口,所以要测UI层,业务逻辑,接口错误这块的问题很大。淘宝,微信会提供一些公共的API供别人调用,变动小,维护量小,实施起来简单
前端(UI)自动化:维护量太高,人力,产出不好量化,很难发现bug(如:做了个监控系统,跑了n天一个bug也没找到)
UI自动化用途:保证系统的可用性,回归验收,日常监控
混合测试,弥补各自的缺点:谷歌721  70%的单元测试 推荐谷歌测试之道
谷歌测试之道的思想:Te 关注业务  更关注用户体验   ste  开发测试

原则:能在底层做自动化覆盖,就尽量不在UI层做自动化覆盖
    只做核心的功能,稳定的功能,一定要考虑好脚本的维护性

◎性能测试工具为什么可以来测接口?

Lr, jmeter支持协议,接口是基于协议的,在协议层面做自动化测试
Shell脚本测试   写shell做自动化的测试
自动化生成测试数据
自动化的典型应用:数据太多,手工一个个添,太麻烦,可以用自动化工具跑;银行开卡,实先得有账户,测试数据的准备,卡的账户很多,数据大量,流程很固定,手工添加很麻烦。

2.什么样的项目适合做自动化测试?

▏自动化测试具备的基本条件

  1. 软件需求变动不频繁

  2. 项目周期长

  3. 自动化测试脚本可以重复使用


  • 优势

1、节省人力、减轻重复劳动力(用于回归、验收测试)
2、定时执行,实时监控(每日监控:挑选核心功能的测试用例,每天早上定时自动跑一下,有错了报警,保证系统可用)
3、可以执行一些手工测试难以实现的功能

  • 缺点

1、不智能(流程很长,有些不确定的因素,会误报)
2、很难发现缺陷
3、脚本维护量很大,对变更的承受能力差

  • 误区

1、取代功能测试
2、自动化可以完全覆盖所有的功能
3、任何系统都能做自动化测试
4、脚本一劳永逸
5、专职做了自动化测试,走向人生巅峰   门槛高,天花板很低
  • 现在找全职做自动化测试的地方基本没有,这个职位很虚,怀疑价值在哪?做出来的东西每天跑,没发现啥bug。建议找55开  64  73  一半功能一半自动化(以功能作为根基)


3.如何开展自动化测试?

▏如何开展自动化测试?

1、评估被测系统是不适合做?上面说的几点
2、适合在哪一个环节做?参考分层测试
3、工具、框架的选择
4、申请资源(时间、人力、机器成本)
5、找到业务的痛点或可以入手的点(找到业务线和测试团队的痛点才有价值)比如每天   早晨做每日巡查
6、搭建框架
7、考量投入产出、评审功能点(步骤固定、预期结果固定  复杂任务拆分)功能测试用   例与自动化测试用例是不一样的
8、自动化测试用例转化:
  1、测试点拆分到最末端:单一用例,单一功能,单一验证点  
  2、一定要有上下文,前置条件要明确
  3、步骤要具体且清晰、预期结果要明确
  4、尽量关注逻辑功能实现,不纠结于具体的细节
9、脚本开发
10、运行和维护
11、效果评估:回归量变少,监控、预警的价值,领导同事的认同感,对整个团队的技    术带动

▏自动化测试工具

单元测试框架
Java:junit,testng    Java社区多,遇到坑好查
Python:unitest,pyunit
Ruby:testunit
接口测试框架
LR  jmeter  soapUI(以前是专门测soap协议)  Itest(百度的一个接口测试框架)  基于httpclinet的二次开发框架
UI测试框架
桌面工具:QTP, AutoRunner
Web工具:QTP、winrunner、RFT、AutoRunner、Robot Framework(关键字驱动)、watir、selenium、Automan、海豚\Juice(开源社区代码维护)
无线app:robotium、instruments、appium、Macaca

▏前端开发基础

url  uri
Html css javascript  ajax
同步请求  异步请求
展示层 业务逻辑层 数据层
MVC
Xml  json
W3C
Xml  传输数据 存储数据 html 显示数据
Xml的命名空间
什么叫命名空间?如何配置命名空间?(测接口的时候)
Xpath解析xml 解析html  定位元素
火狐浏览器安装插件 xpath checker  用该插件找元素 检查xpath表达式路径
xpath语法提炼
一个/是绝对路径,从根元素开始
两个//是相对路径,递归查找所有子孙 递归:找到不能再找为止
一个. 是当前层,两个.是上一层
*叫通配符,表示任意
一个元素是一个单独的个体,它有属性,有内容值
[]叫谓语,里面跟的是条件
条件支持算数运算+-*/><,条件支持逻辑运算 and or
取文本值用text(),不加@因为它是个函数
常用函数就几个,contains是包含,写法是括号加两个入参
text()是取文本值,也可以当做一个查询条件
last()取末尾,倒数第二last()-1
starts-with(),表示以XX开头,写法是括号加两个入参
not(),表示否定,把内容全包进去
查询对象,层层找


 1.选取 书店里 所有书的详细信息
2.选取 所有书的标题,所有书的分类签
3.选取 第一本书的定价
4.选取 最后一本书的作者
5.选取 倒数第二本书的 分类标签
6.选取 定价高于35的书的标题
7.选取 定价在30到40之间的书的标题
8.选取 作者多于一个的书的标题
9.选取 作者多于一个的书 只列出所有作者名
10.选取 分类是web 且价格低于40的书
11.选取 标题名称包含X的 所有书的定价
12.选取 分类是web 且作者不包括James的 作者名
anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/1487.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注