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

相关文章

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习