AutoRunner 功能自动化测试项目实训之自动化测试原理(一)

2024-01-10 22:18

本文主要是介绍AutoRunner 功能自动化测试项目实训之自动化测试原理(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着自动化测试的飞速发展,在日常的学习生活中我们经常会听到自动化测试相关的话题,今天起我们就开始来了解除了 QTP以外的自动化测试工具AutoRunner,我在这个系列文章里会以实际案例的形式给大家介绍工具的操作和实际的测试过程希望对大家有所帮助。

一、自动化测试是什么?

自动化测试模拟人手工对计算机和计算机上软件的操作过程和操作行为,采用类似于编译系统对程序代码进行检查。自动化测试的原理:直接对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技术和虚拟用户技术。所以自动化测试是一个广义的名词,我们在接下来的文章里给大家分享的是功能自动化测.

二、功能自动化测试原理

1.录制回放

录制回放是黑盒测试的自动化方法,通过捕获用户每一步操作,如用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相应操作、状态变化或属性变化,用一种脚本语言记录描述,模拟用户操作。回放时,将脚本语言转换为屏幕操作,比较被测系统的输出记录与预先给定的标准结果。目前的自动化负载测试解决方案几乎都是采用“录制回放”的技术。所谓“录制回放”技术,就是先由手工完成一遍测试流程,由自动化测试工具AutoRunner记录下这个流程期间客户端和服务器端之间的通信信息,这些信息通常是一些步骤和数据,并形成特定的脚本程序,并运行该脚本,检测系统的功能是否正常。

2.脚本技术

(1)脚本介绍
脚本是一组测试工具执行的指令集合,也是计算机程序的另一种表现形式。脚本语言至少具有如下功能:
1)支持多种常用的变量和数据类型
2)支持各种条件逻辑、循环结构。
3)支持函数的创建和调用
脚本有两种,一种是手动编写或嵌入源代码;另一种是通过测试工具提供的录制功能,运行程序自动录制生成脚本。由于录制生成脚本简单且智能化,容易操作,但仅靠自动录制脚本,无法满足用户的复杂要求,需要手工添加函数进行参数设置,增强脚本的实用性。
手工编写脚本具有如下优点:
1)可读性好,流程清晰,检查点截取含义明确。
业务级的代码比协议级代码容易理解,也更容易维护,而录制生成的代码大多没有维护的价值
2)手写脚本比录制脚本更真实地模拟应用。
录制脚本截获了网络包,生成协议级的代码,却往往忽略客户端的处理逻辑,不能真实模拟应用程序的运行。
3)手写脚本比录制脚本更能提高测试人员的技术水平
测试工具提供如Java、VB、C等高级程序设计语言的脚本,允许用户根据不同测试要求定义开发各种语言类型的测试脚本。
总之,使用哪种方式生成脚本,应以脚本模拟程序的真实有效为准。例如,有些程序只需要执行迭代多次操作,没有特殊要求,选择自动生成的脚本就可以。但有些程序需要参数设置,则应使用手工脚本
(2)脚本分类
脚本技术分为以下几种类型
1)线性脚本。录制手工执行的测试用例得到的线性脚本,包含用户键盘和鼠标输入,检查某个窗口是否弹出等操作线性脚本具有如下优点:不需要深入的工作或计划,对实际执行操作可以审计跟踪。线性脚本适用于演示、培训或执行较少且环境变化小的测试、数据转换的操作功能。但是,线性脚本具有以下缺点:过程较烦琐,过多依赖于每次捕获内容,测试输入和比较是“捆绑在脚本中,不能共享或重用脚本,容易受软件变化的影响。另外,线性脚本修改代价大,维护成本高,容易受意外事件影响,导致整个测试失败。
2)结构化脚本。结构化脚本类似于结构化程序设计,包含控制脚本执行指令,具有顺序、
循环和分支等结构。结构化脚本的优点是健壮性好,通过循环和调用减少工作量:但结构化脚本较复杂,而且测试数据仍然与脚本“捆绑”在一起。
3)共享脚本。共享脚本侧重描述脚本中共享的特性,脚本可以被多个测试用例使用一个脚本可以被另一个脚本调用。当重复任务发生变化时,只需修改一个脚本,便可达到脚本共享的目的
共享脚本具有如下优点:
以较少的开销实现类似的测试,维护共享脚本的开销低于线性脚本。但是,共享脚本需要跟踪更多的脚本,给配置管理带来一定困难,并且对于每个测试用例仍然需要特定的测试脚本。
4)数据驱动脚本。数据驱动脚本将测试输入到独立的数据文件(数据库)中,而不是绑定在脚本中。执行时是从数据文件中读数据,使得同一个脚本执行不同的测试,只需对数据进行修改,不必修改执行脚本。通过一个测试脚本指定不同的测试数据文件,实现较多的测试用例,将数据文件单独列出,选择合适的数据格式和形式,达到简化数据、减少出错的目的数据驱动脚本具有如下优点:快速增加类似的测试用例,新增加的测试也不必掌握工具脚本技术,对以后类似的测试无需额外的维护,有利于测试脚本和输入数据分离,减少编程和维护的工作量,有利于测试用例扩充和完善。但是,数据驱动脚本初始建立开销较大、需要专业人员支持。
5)关键字驱动脚本。关键字驱动作为比较复杂的数据驱动技术的逻辑扩展,是将数据文件变成测试用例的描述,用一系列关键字指定要执行的任务。关键字驱动技术假设测试者具有被测系统知识和技术,不必告之如何进行详细动作,以及测试用例如何执行,只说明测试用例即可。关键字驱动脚本多使用说明性方法和描述性方法。
6)虚拟用户技术。虚拟用户技术通过模拟真实用户行为对被测程序施加负载,测量被测程序的性能指标值,如事务的响应时间、服务器吞吐量等。虚拟用户技术以真实用户的“商务处理”(用户为完成一个商业业务而执行的一系列操作)作为负载的基本组成单位,用“虚拟用户”(模拟用户行为的测试脚本)模拟真实用户负载需求(例如并发虚拟用户数、处理的执行频率等)通过人工收集和分析系统使用信息来获得,负载测试工具模拟成千上万个虚拟用户同时访问被测程序,来自不同IP地址、不同测览器类型以及不同网络连接方式的请求,并实时监视系统性能,帮助测试人员分析测试结果。虚拟用户技术具有成熟测试工具支持,但确定负载的信息要依靠人工收集,准确性不高。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了自动化测试的原理,包括录制回放功能和脚本技术的介绍。

这篇关于AutoRunner 功能自动化测试项目实训之自动化测试原理(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/592248

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

基于SpringBoot实现文件秒传功能

《基于SpringBoot实现文件秒传功能》在开发Web应用时,文件上传是一个常见需求,然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余,此时可以使用文件秒传技术通过识别重复... 目录前言文件秒传原理代码实现1. 创建项目基础结构2. 创建上传存储代码3. 创建Result类4.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI