什么是自动化测试

  • 让程序代替人去验证程序功能的过程
  • 自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程
  • 比如说:我们设计好执行脚本,通过驱动连接浏览器去模拟人去操作浏览器一般

为什么要进行自动化测试

  • 解决回归测试
  • 解决压力测试
  • 解决兼容测试
  • 提高测试效率,保证产品质量

自动化测试所属分类

  • 黑盒测试(功能测试)
  • 灰盒测试(接口测试)
  • 白盒测试(单元测试)

注意:Web自动化测试属于黑盒测试(功能测试)

自动化测试优缺点

优点:

  • 比较少时间运行更多的测试用例
  • 自动化脚本可以重复使用
  • 减少人为的错误
  • 测试数据存储

缺点:

  • 不能取代手工测试
  • 手共测试比自动化测试发现的缺陷多,实际测试里面,手共bug80%,自动化工具20%(性能和功能)
  • 测试人员技能要求,要懂代码

自动化测试过程

​ 自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。

  • 自动化测试需求分析

    当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例,测试数据,并形成详细的文档,以便于自动化测试框架的建立。

  • 自动化测试框架的搭建

    所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件,结构,调用的过程,以及文件结构如何划分。

    而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素

  • 公用的对象

    不同的测试用例会有一些相同的对象被重复使用,比如窗口,按钮,页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需要修改所有的测试脚本

  • 公用的环境

    各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性

  • 公用的方法

    当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,我们便需要自己编写该方法,以方便脚本的调用

  • 测试数据

    也许一个测试用例需要执行很多个测试数据,我们便可以将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取文件,从而达到数据覆盖的目的。

    在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程

自动化测试分类

  • web -(UI)自动化测试
  • 接口自动化测试
  • 移动(app)自动化测试
  • 单元测试--------------自动化测试

什么是Web自动化测试

让程序代替人为去验证web项目功能的过程

什么web项目适合自动化测试

  • 需求变动不频繁

    测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本维护的本身就是一个代码开发的过程,需要修改,调式,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的

    项目中的某些模块需求变动性很多。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试

  • 项目周期足够长

    自动化测试需求的确定,自动化测试框架的设计,测试脚本的编写与调式均需要相当长的时间来完成。这样的过程本身呢个就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期较短,没有足够的时间去支持这样的一个过程,那么自动化测试便成为笑谈。

  • 自动化测试脚本可重复使用(项目需要回归调式)

    如果费劲心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,至其所消耗的成本大于所创建的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正产生效益的测试手段了

    另外,在手共测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比容性能测试,配置测试,大数据量输入测试等。

主流测试工具

web自动化测试工具:selenium,QTP,Robot Framework功能自动化测试框架

性能自动化测试工具:loadrunner ,Jmeter

接口自动化测试工具:SoapUI,Postman,Jmeter,restclient

移动(app)自动化测试工具:robotium(Android 自动化测试框架),appium,Monkey(压力测试,随机测试工具)

云测平台:testin

功能测试工具Selenium简介

selenium是一款基于web应用程序的开源测试工具

它支持Firefox,Chrome,IE等众多浏览器

他同时支持Java,C#,Ruby,Python,PHP等众多的主流语言

Selenium特点

  • 开源,跨平台,运行在浏览器中
  • 简单灵活,支持很多种语言

Selenium核心组件

selenium Core:支持DHTML的测试案列(效果类似数据驱动测试),它是Selenium IDE 和 Selenium的引擎

selenium IEDS是一个Firefox浏览器的一个插件,可以实现对浏览器的简单操作的录制与回放功能。一般用于测试人员在测试过程中发现bug,通过selenium IDE将重测步骤录制下来,快速创建了bug重现版本,从而提供开发人员容易重现bug。IDE除了录制回放外还可以导出录制的脚本,并导出多种语言,不同版本的selenium脚本,供测试人员快速开发脚本

Selenium RC:Selenium Remote Control。Selenium RC 使用的是javascript注入的方式跟浏览器打交道。这样 Selenium RC 需要启动一个Server,然后将操作页面元素的API 转成javascript脚本,再把这段脚本注入到浏览器中去执行。而通过这种javascript注入的方式一来太依赖翻译成javascript质量的好坏,二来javascript存在同源问题。这使测试变得不那么容易。

Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web 应用的功能测试。

Selenium IDE

command:表示要进行打开点击操作所要执行的命令

  1. open:打开指定的URL,www.baidu.com
  2. clickAndWait:命令,表示进行点击操作、其中有AndWait表示页面需要进行刷新、
  3. type:设置输入关键字 美女
  4. target:执行命令的对象。需要找到link才可以执行 clickAndWait操作。
  5. 其中target:是按照css或者Xpath的语法在页面寻找到对应元素

1、指的是你当前录制时的开始连接地址。

2、这里就是你的测试用例,刚开始录制好之后都是没有命名的。

3、脚本命令内容,command:方法关键字;Target:元素定位;Value:参数。

4、新建和修改脚本的地方。

5、日志输出。

6、右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束。

五、录制第一个脚本,打开www.baidu.com,再输入框输入Selenium,点击百度一下按钮。我们只需要打开seleniumIDE,然后在Firefox中操作以上步骤,之后打开seleniumIDE关闭录制按钮,生成脚本。

初识Selenium自动化(为什么要去用自动化?)的更多相关文章

  1. 测试自动化:java+selenium3 UI自动化(2) - 启动Firefox

    1. selenium和浏览器 基于selenium的这套自动化体系,其实现关键就在于对于各浏览器的顺畅操作. 事实上当selenium刚开始起家的时候,他使用的还是javascript注入的方式来驱 ...

  2. 测试自动化:java+selenium3 UI自动化(1) - 环境搭建

    1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非 ...

  3. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  4. Selenium基础教程(三)自动化插件Katalon

    Katalon-一款好用的selenium自动化测试插件 Selenium 框架是目前使用较广泛的开源自动化框架,一款好的.基于界面的录制工具对于初学者来说可以快速入门:对于老手来说可以提高开发自动化 ...

  5. Selenium系列(十二) - 自动化必备知识之CSS选择器的详细使用

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  6. Java+selenium+Firefox/ IE/ Chrome主流浏览器自动化环境搭建

    一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodrive ...

  7. selenium(12)-web UI自动化项目实战(PO模式,代码封装)

    web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...

  8. 初识TPOT:一个基于Python的自动化机器学习开发工具

    1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...

  9. python+selenium,实现带有验证码的自动化登录功能

    python+selenium的环境准备,请自行安装完成,这里直接贴代码,方便做项目时直接使用. import time from selenium import webdriver from PIL ...

  10. python + selenium + unittest实现简单的UI自动化

    使用的版本是python 3,其中HTMLTestRunner是修改版本,参考以下博客并下载 https://blog.csdn.net/zhanin123/article/details/78950 ...

随机推荐

  1. SNN_文献阅读_Effective and Efficient Computation with Multiple-timescaleSpiking Recurrent Neural Networks

    Adaptive SRNN 基于多时间尺度脉冲循环神经网络的高效计算(SRNN) 中心思想: 使用替代梯度进行训练,克服SNN中梯度不连续的问题. 在PyTorch中直接使用BPTT进行训练. 结构 ...

  2. Vue 2.x源码学习:数据响应式改造

    内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 相关学习笔记: rend ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (136)-- 算法导论11.3 2题

    二.用go语言,假设将一个长度为r的字符串散列到m 个槽中,并将其视为一个以 128 为基数的数,要求应用除法散列法.我们可以很容易地把数 m 表示为一个 32 位的机器字,但对长度为r的字符串,由于 ...

  4. decltype关键词

    简述 decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导. decltype 是"declare type"的缩写,译 ...

  5. 深入理解 BigBird 的块稀疏注意力

    引言 基于 transformer 的模型已被证明对很多 NLP 任务都非常有用.然而,\(O(n^2)\) 的时间和内存复杂度 (其中 \(n\) 是序列长度) 使得在长序列 (\(n > 5 ...

  6. Modbus转PROFINET网关助力电子天平与西门子PLC无缝对接

    背景: 在制药.食品科学和其他行业中,电子天平被广泛用于质量控制和分析实验.它们可以用于检测样品的净重.含量和浓度,并用于监测产品的制造过程. 常州某反应器公司实验室近期采购一批电子天平,现需要把电子 ...

  7. 深度解剖Linux权限的概念

    Linux 权限系统是其安全性的基石,它允许系统管理员和用户对文件和目录进行精细的控制.在深度解剖 Linux 权限的概念时,我们需要涵盖以下主题: 1. **文件系统基础** - 文件系统结构:Li ...

  8. [CSAPP、APUE、UNP]文件、IO

    <鸟哥的Linux私房菜:基础学习篇(第四版)> 第5章 Linux的文件权限与目录配置 第6章 LInux文件与目录管理(正在进行) <CSAPP> 第10章 系统级IO 1 ...

  9. 通过 VS Code 优雅地编辑 Pod 内的代码(非 NodePort)

    目录 1. 概述 2. NodePort 方式 3. Ingress 方式 4. 救命稻草 5. 其他 1. 概述 今天聊点啥呢,话说,你有没有想过怎样用 VS Code 连上 K8s 集群内的某个 ...

  10. C++ Qt开发:StringListModel字符串列表映射组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QString ...