UI自动化测试

前言

随着智能化信息基础设施的推进,软件开发的进程也不断加快。软件测试工作也逐渐由传统的手工测试向软件自动化测试跨越。

对于很多企业来说,做好软件自动化测试工作已经不仅仅是通过测试工具进行“点点点”,要想找出软件测试过程中的缺陷并对软件产品有个清晰的评估,最后生成测试报告,还是要通过一套清晰的自动化测试方案实现。

目前对于APP,web做自动化测试的框架和工具有很多,也有很多介绍的文章,但PC端的自动化测试工具的介绍还比较少,这里从自动化测试角度来做一些介绍。同时,我也为大家准备了一份软件测试视频教程,放在文末了,需要的可以直接去观看,或者直接点击文末小卡片免费领取资料文档

一、软件自动化测试什么意思?

软件自动化测试就是通过测试工具代替人工自动执行测试用例,并自动评估运行结果的过程。相比以往完全通过手工测试进行软件测试,自动化测试能够节省人力、物力资源,降低人为因素引发的错误率。不过,目前软件测试过程通常是手工测试与自动化测试相结合进行。

二、软件自动化测试工具有哪些?

市场上自动化测试工具有非常多,为了提高我们在软件测试过程中的工作效率,选用好用的自动化测试工具十分有必要。

1、国外的软件自动化测试工具,比如QTP,UFT等,但很多都不可避免的是费用高,而且界面(英文居多)对一般的测试工程师不友好。

2、国产的自动化测试工具,比如我之前用过的UTP界面自动化测试工具(utpGui,或UTP-GuiRecorder),专门针对于PC端的Windows软件,可以通过特征属性定位控件,不依赖于位置,而且不需要编程,支持参数化。

三、如何分辨自动化测试工具是否有用?

自动化测试工具有很多,如何确定某一款工具是否能够满足实际的测试需要呢?

可以从以下几方面进行甄别:

1、自动化测试工具是否需要测试人员具有编写代码的能力?

大部分测试工程师编程能力和其他程序员存在差距,如果测试工具需要编码能力,对于使用者的要求会比较高。(众所周知,有编程能力的一般去做开发了。而有编程能力的测试工程师一般会往开发自动化测试脚本发展)

所以,自动化测试工具无需编码,是最容易让测试人员上手使用的。

UTP-GuiRecorder 可以通过录制的方式直接产生自动化测试脚本,整个测试过程无需编码。

2、自动化测试工具是否能够识别界面软件的控件?

自动化测试,是代替人工自动对界面软件进行操作检查,如果不能识别软件上的控件,就更不用谈自动化测试了。

UTP-GuiRecorder 支持通过特征属性识别被测对象,同时提供文字识别,图片识别,位置识别和辅助识别等功能,完成对被测对象的识别与录制。专业识别标准控件以及非标控件。

3、自动化测试工具是否能应对软件版本变更?

软件测试做自动化,最大的原因是为了解决大量繁杂的回归测试,但当自动化测试用例编辑完成后,下一轮回归软件控件发生了改变,是否之前的用例就不能使用了?

UTP-GuiRecorder 对于软件版本变更后导致的控件变化问题,能够有很好的支持,基本一次版本变更,只需要重新录制替换几个控件就可以完全支持新版本的测试。

4、自动化测试工具是否支持重复命令的封装以及参数化?

软件测试过程中,对每个功能的测试往往会有一些重复的地方,这些重复操作是否可以封装成脚本进行使用?对一些功能需要不同数据进行测试(比如不同账号的登录),是否能够支持参数化,做数据驱动测试?

UTP-GuiRecorder 支持重复命令的封装以及参数化。

5、自动化测试工具是否支持自动判读测试执行结果,是否有测试记录留存?

测试执行结果能够表明测试执行成功或失败,而具体是哪一个测试步骤执行失败,失败的原因是测试人员更关注的,自动化测试工具是否能够自动判读测试执行结果也是衡量一个工具好坏的重要标准。

UTP-GuiRecorder 支持支持自动判读测试执行结果,显示每一条测试步骤的执行结果,并检查关键输入和输出是否正确,并可以自动留存测试执行记录和执行结果。

四、给你技术上的一点帮助

最后在这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助,有需要的朋友你可以【点击文末小卡片免费领取】。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近300个G。

☑ 215集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

免费视频教程观看处:

一个很变态但可以让你迅速掌握自动化测试(Web/接口自动化/APP/Selenium/性能测试等)的神奇方法_哔哩哔哩_bilibili一个很变态但可以让你迅速掌握自动化测试(Web/接口自动化/APP/Selenium/性能测试等)的神奇方法共计100条视频,包括:【自动化测试】 如何设计接口测试用例?、【自动化测试】自动化测试框架设计思路、软件测试全套资料及学习路线等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1hj411z71j/?vd_source=74d0257ec7066cc4f9013524f0bb7013

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/74182.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESLint是什么?

ESLint 介绍 ESLint 是一款插件,主要用来检测编写的( JavaScript )代码是否符合规范。当然在一个团队中也会自定义一些规范条件。另外正常情况下我们不需要单独安装 ESLint 去使用,这里只是为了做演示。例如 vue-cli 脚手架搭建的…

【C快学-C语言程序设计(基础篇)】从VSCode中使用C编写我的第一个Hello world

简介:本专栏是一个C语言基础入门知识学习的一个专栏 面向:广大C友 工具:VSCODE 博主:一个友好且宠粉的博主,送书活动小专栏,不定期抽奖送图书给粉丝 社区:🦈山鱼社区 1.如何配置C语言…

matlab使用教程(15)—图论基础

1.有向图和无向图 1.1什么是图? 图是表示各种关系的节点和边的集合: • 节点 是与对象对应的顶点。 • 边 是对象之间的连接。 • 图的边有时会有权重 ,表示节点之间的每个连接的强度(或一些其他属性)。 这些定…

Tree相关

1.树相关题目 1.1 二叉树的中序遍历(简单):递归 题目:使用中序遍历二叉树 思想:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历&#xff0…

​LeetCode解法汇总1572. 矩阵对角线元素的和

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个正…

Camx--概述

该部分代码主要位于 vendor/qcom/proprietary/ 目录下: 其中 camx 代表了通用功能性接口的代码实现集合(CamX),chi-cdk代表了可定制化需求的代码实现集合(CHI),从图中可以看出Camx部分对上作为H…

Redis_缓存2_缓存删除和淘汰策略

14.5 缓存数据的删除和替换 14.5.1 过期数据 可以使用ttl查看key的状态。已过期的数据,redis并未马上删除。优先去执行读写数据操作,删除操作延后执行。 14.5.2 删除策略 redis中每一个value对应一个内存地址,在expires,一个内…

安全第二次

一&#xff0c;iframe <iframe>标签用于在网页里面嵌入其他网页。 1&#xff0c;sandbox属性 如果嵌入的网页是其他网站的页面&#xff0c;因不了解对方会执行什么操作&#xff0c;因此就存在安全风险。为了限制<iframe>的风险&#xff0c;HTML 提供了sandb…

Django路由Router

文章目录 一、路由router路由匹配命名空间反向解析 二、实践创建用户模型Model添加子路由 - 创建用户首页页面跳转 - 使用反向解析和命名空间1. 不使用命名空间的效果2. 使用命名空间的效果 用户详情页面跳转 - 路由传参路由传递多个参数re_path 以前写法,了解即可重定向Redire…

二叉树题目:二叉树的直径

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树的直径 出处&#xff1a;543. 二叉树的直径 难度 3 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root&#xff0c;返回其直径…

java练习3.快速查找

题目: 数组 arr[6,1,3,7,9,8,5,4,2],用快速排序进行升序排序. import java.util.Random;public class recursionDemo {public static void main(String[] args) {/*快速排序:* 第一轮:以0索引为基准数,确定基准数在数组正确的位置,* 比基准数小的放到左边,比基准数大的放在右边…

FPGA应用学习-----FIFO双口ram解决时钟域+asic样机的时钟选通

60m写入异步ram&#xff0c;再用100M从ram中读出 写地址转换为格雷码后&#xff0c;打两拍和读地址判断是否空产生。相反读地址来判断是否满产生。 分割同步模块 asic时钟的门控时钟&#xff0c;fpga是不推荐采用门控时钟的&#xff0c;有很多方法移除fpga的时钟选通。 如果是a…

算法通关村第七关——递归和迭代实现二叉树前中后序遍历

1.递归 1.1 熟悉递归 所有的递归有两个基本特征&#xff1a; 执行时范围不断缩小&#xff0c;这样才能触底反弹。终止判断在调用递归的前面。 写递归的步骤&#xff1a; 从小到大递推。分情况讨论&#xff0c;明确结束条件。组合出完整方法。想验证就从大到小画图推演。 …

中级课程——XSS

文章目录 介绍挖掘思路分类反射型存储型dom类型 介绍 挖掘思路 注入点&#xff1a;各种输入框 测试代码&#xff08;poc&#xff09;&#xff1a;js语句 分类 反射型 存储型 dom类型

Java并发编程(六)线程池[Executor体系]

概述 在处理大量任务时,重复利用线程可以提高程序执行效率,因此线程池应运而生。 它是一种重用线程的机制,可以有效降低内存资源消耗提高响应速度。当任务到达时&#xff0c;任务可以不需要的等到线程创建就能立即执行线程池可以帮助我们更好地管理线程的生命周期和资源使用,…

机器学习 | Python实现KNN(K近邻)模型实践

机器学习 | Python实现KNN(K近邻)模型实践 目录 机器学习 | Python实现KNN(K近邻)模型实践基本介绍模型原理源码设计学习小结参考资料基本介绍 一句话就可以概括出KNN(K最近邻算法)的算法原理:综合k个“邻居”的标签值作为新样本的预测值。更具体来讲KNN分类过程,给定一个训…

Android APK体积优化(瘦身)

1、基础知识&#xff1a; 1.1 apk结构 lib &#xff1a;存放so文件&#xff0c;对应不同的cpu架构 res &#xff1a;资源文件&#xff0c;layout、drawable等&#xff0c;经过aapt编译 assets &#xff1a;资源文件&#xff0c;不经过aapt编译 classes.dex &#xff1a;dx编译…

基于HTML+CSS+Echarts大屏数据可视化集合共99套

基于HTMLCSSEcharts大屏数据可视化集合共99套 一、介绍二、展示1.大数据展示系统2.物流订单系统3.物流信息系统4.办税渠道监控平台5.车辆综合管控平台 三、其他系统实现四、获取源码 一、介绍 基于HTML/CSS/Echarts的会议展览、业务监控、风险预警、数据分析展示等多种展示需求…

菜单和内容滚动的联动原理及代码

之前写代码有个需求&#xff1a;左侧是一个菜单&#xff0c;右边是内容&#xff0c;点击左侧菜单右边内容滚动到对应位置&#xff0c;右边内容滚动到某位置时&#xff0c;左侧菜单也会选中对应的菜单项。UI如下&#xff1a;这是大多网站的移动端都会有的需求。 解决方案一&…

Spring Boot业务代码中使用@Transactional事务失效踩坑点总结

1.概述 接着之前我们对Spring AOP以及基于AOP实现事务控制的上文&#xff0c;今天我们来看看平时在项目业务开发中使用声明式事务Transactional的失效场景&#xff0c;并分析其失效原因&#xff0c;从而帮助开发人员尽量避免踩坑。 我们知道 Spring 声明式事务功能提供了极其…