《用户体验测试的自动化实现》- 检查默认焦点位置

Test Pilot Loop:AI驱动的用户体验自动化测试框架实践 在软件工程领域,自动化测试是保障软件质量的关键环节,其核心原理是通过预设脚本验证代码逻辑与功能实现的正确性。然而,传统的单元测试、集成测试和E2E测试主要聚焦于功能验证,难以评估产品的实际用户体验与易用性。随着AI技术的发展,智能体(Agent)开始被应用于模拟真实用户行为,为解决这一问题提供了新的技术路径。Test Pilot Loop框架正是这一趋势下的工程实践,它通过让具备计算机使用能力的AI(如Claude Cowork)扮演不同认知背景的虚拟用户,执行点击、输入等真实操作,从而对产品的可发现性、清 阅读详情

注:本文最早发表在《51测试天地》第九期

检查默认焦点位置

    在进行界面易用性测试和用户体验测试时,我们会要求在打开某个界面时,默认把焦点定位到某个控件,方便用户做后续的操作,例如默认定位到某个输入框,方便用户能马上输入数据。

    如果用人工的方式进行检查的话,需要打开每个界面,观察当前光标的位置,检查是否定位到合适的位置上,这样会比较耗费时间。而如果采用自动化的测试方法,则可以利用控件的Focused属性当前是否为True,来判断焦点是否落在控件上。

    每一个控件都会有Focused属性,可以使用Windows API函数中的GetFocus函数来获取当前焦点所在的控件,例如下面的C#代码可用于取得当前焦点所在控件的句柄:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

 

namespace GetFocusTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            // 使用GetFocus函数获取当前焦点所在控件的句柄

            Automation auto = new Automation();

            IntPtr hand = auto.FindFocusWindow();

            // 以十六进制显示

            MessageBox.Show(hand.ToString("X"));

        }

    }

 

    public class Automation

    {

        // 导入Windows API中的GetFocus函数

        [DllImport("user32.dll", CharSet = CharSet.Auto)]

        static extern IntPtr GetFocus();

 

        // 获取当前焦点所在的控件

        public IntPtr FindFocusWindow()

        {

            // 返回控件句柄

            return GetFocus();

        }

    }

}

    由代码可知,单击Button1按钮后,获取到的当前焦点所在控件必然是Button1按钮自身,这个可以使用Spy++来进一步验证,如图2所示。

图2  获取焦点所在控件的句柄

    与GetFocus相对应的Windows API函数是SetFocus,用于把焦点设置到某个控件上。大部分的测试工具在实现焦点的检查和设置其实都是采用了上述过程的原理。例如在QTP中,则可以采用如下脚本来实现相同的功能:

Dialog("Login").Activate

' 如果默认焦点不在Agent Name输入框,则提示错误

If NOT Dialog("Login").WinEdit("Agent Name:").CheckProperty("focused","True" )Then

       Msgbox Dialog("Login").WinEdit("Agent Name:").GetROProperty("focused")

End If

    这里的CheckProperty函数和GetROProperty函数是基本上可以在每个测试对象中使用的函数,其中CheckProperty类似于检查点,用于检查测试对象的指定属性是否等于指定的值,对于控件焦点,则是focused属性,属性值为True表示焦点落在控件上,属性值为False则表示焦点没有在控件上。

    GetROProperty用于获取测试对象运行时的值。通过指定focused属性,可以获取到控件的焦点属性。

Web UI测试实战:14个易忽略测试点与自查清单 UI测试是确保Web应用用户体验的关键环节,其核心在于验证界面与用户交互的完整生命周期。从技术原理看,它覆盖视觉呈现、交互逻辑、数据状态与前端性能四个维度,通过系统性的验证保障产品的可用性与稳定性。在工程实践中,UI测试的价值在于提前发现并修复影响用户体验的缺陷,降低线上问题发生率,尤其在表单交互、内容展示、动态组件等高频场景中作用显著。本文将聚焦于Web UI测试中容易被忽略的14个关键测试点,例如表单的动态校验、下拉框的完整生命周期、响应式图片处理、弹窗的焦点管理以及深色模式适配等,并提供一份实用的自查 阅读详情

相关推荐

《用户体验测试的自动化实现》源代码

《用户体验测试的自动化实现》源代码 京华志&精华志出品 希望大家互相学习,互相进步 支持优快云 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等等好多知识

《用户体验测试的自动化实现》- 什么是用户体验测试?

注:节选自《用户体验测试的自动化实现》,文章最早发表在《51测试天地》第9期什么是用户体验测试?    用户体验是软件产品的使用者对产品的印象、感觉,同时也是用户既有的软件使用习惯和业务思维模型的综合反映。软件产品的用户体验好,则能让用户感到使用方便、易用、符合思维习惯。    用户体验测试就是基于用户的使用习惯和思维模式出发,结合实际的业务场景,对软件产品的外观、操作方式等方面进行检

软件质量优化 3892

并网逆变器学习笔记8---平衡桥(独立中线模块)控制

参考文献:《带独立中线模块的三相四线制逆变器中线电压脉动抑制方法》---赵文心。

圆桌骑士的博客 7303

用户体验测试的自动化实现 - 对检查Tab顺序的脚本进行完善

  注:本文最早发表在《51测试天地》第九期对检查Tab顺序的脚本进行完善把前面的脚本结构适当调整,让其可维护性更强,则可改成如下所示的脚本: 检查控件的focused属性Public Function CheckFocus(TestObject)       If TestObject.CheckProperty("focused","True") Then  

软件质量优化 2845

VLA、世界模型与端到端在智驾中的本质关系与工程落地

世界模型并非3D重建,而是对环境状态转移函数的可微分建模;VLA不是视觉+语言+动作的简单拼接,核心在于跨模态语义对齐。二者共同支撑具身智能系统实现从感知到行动的闭环推演,其技术价值体现在长尾场景泛化能力提升与决策延迟降低。在自动驾驶领域,真实量产方案均采用VLA架构作为多模态感知基础,嵌入轻量级世界模型以支持反事实轨迹推演,并通过WA硬件封装保障实时性,最终由端到端控制层完成像素到扭矩的语义贯通。这种混合架构已成L2+/L3智驾系统的工程共识。

weixin_34163553的博客 365

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1242

用户体验测试的自动化实现 - 第二种检查Tab顺序的方法

注:本文最早发表在《51测试天地》第九期 第二种检查Tab顺序的方法 前面介绍的检查TAB顺序的方法是通过模拟用户按下TAB键,然后检查控件的Focused属性来判断是否正确地跳转,而接下来要介绍的方法是通过读取控件的“TabIndex”属性来判断控件是否处于正确的TAB顺序的位置中。 我们首先查看一下VB程序的界面设计器中的属性窗口,如图7所示。 <shapetype ...

kuwoleft 233

python数据处理(一)——如何用python实现excel功能

python如何实现excel的数据提取、指标构建,进行透视分析。

一名数据分析师 2703

用户体验测试的自动化实现 - 检查Tab顺序

注:本文最早发表在《51测试天地》第九期检查Tab顺序    使用与检查焦点类似的方法,可以检查界面中控件之间的焦点跳转顺序是否正确,也就是我们通常所说的Tab顺序的检查。    检查焦点的跳转顺序的目的是为了提高用户的工作效率,在输入密集型的用户界面中,用户通常大部分情况下是在录入数据,如果不能很好地支持键盘TAB键、快捷键,而是要用户每输入一个数据就要移动鼠标,再次定位,则会耗费很

软件质量优化 2618

告别Keil,在Windows上用VSCode + arm-none-eabi-gcc + Makefile搭建国产MCU开发环境(附JLink配置避坑)

本文详细介绍了如何在Windows上使用VSCode、arm-none-eabi-gcc和Makefile搭建国产MCU开发环境,替代传统的Keil和IAR。内容涵盖工具链配置、工程结构设计、Makefile编写、VSCode集成调试以及高效开发工作流,特别针对国产MCU如复旦微FM33系列提供了优化方案和避坑指南。

weixin_28729205的博客 431

Allegro如何导出和导入器件模型Signal_Model操作指导

在用Allegro做PCB设计的时候,通常需要给器件加上Signal_Model,在做等长的时候用到的非常频繁。如下图,需要把R7002的Signal_Model导入到另外一块没有给R7002加好模型的BRD中。Allegro除了可以给器件添加模型,还支持从一块加好模型的BRD导入到另外一块BRD中,如何导出和导入器件模型Signal_Model操作指导。

weixin_54787054的博客 1896

解决Carbon模态框焦点陷阱:从用户抱怨到完美修复

你是否遇到过这样的情况:点击打开模态框后,键盘Tab键导航失控,焦点在模态框内外乱跳?或者关闭模态框后,页面焦点丢失导致用户无法继续操作?这些问题不仅影响用户体验,更是Web可访问性(A11y)的重大隐患。本文将以Carbon Design System的ComposedModal组件为例,详解焦点管理的实现原理与常见问题修复方案,让你的模态框交互既流畅又符合无障碍标准。 ## 焦点管理为何重要...

gitblog_00769的博客 448

14 Prompt 的边界:什么时候必须用 RAG 或微调

Prompt 不是万能解法。本文用“改输入、补知识、改模型”这条主线,讲清什么时候继续优化 Prompt,什么时候必须引入 RAG、工具调用或微调,帮助你避免用重技术掩盖轻问题。

老于的笔记的专栏 209

前端无障碍焦点管理终极指南:如何实现完美的Focus Trap功能

在现代Web应用开发中,无障碍设计已成为提升用户体验的关键要素之一。焦点管理作为无障碍设计的核心环节,直接影响键盘用户和辅助技术使用者的操作流畅度。本文将全面解析Focus Trap功能的实现原理与最佳实践,帮助开发者构建更具包容性的前端应用。 ## 为什么Focus Trap是无障碍设计的必备功能 当用户通过键盘导航网站时,焦点管理直接决定了操作的直观性和效率。模态对话框、下拉菜单和侧边栏等

gitblog_00763的博客 1070

windows中搭建sonic云真机环境/云真机环境搭建-基于docker容器部署

基于Windows系统搭建Sonic远程云真机环境实现通过浏览器操作手机端系统

雾林小妖的博客 1015

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

搜索框测试用例设计:全方位覆盖功能、性能与用户体验

本文系统梳理了搜索框测试的六个关键维度:功能测试验证基础交互和结果准确性;性能测试评估响应速度和资源占用;兼容性测试覆盖多浏览器和设备;安全性测试防范注入攻击;界面测试确保视觉一致性;易用性测试优化交互体验。文章提供了详细测试用例示例,强调自动化与手动测试结合,特别关注移动端适配和安全防护,旨在构建高效可靠的搜索功能,提升用户体验。

2301_79396073的博客 904

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android TV开发中RecyclerView焦点控制实践

在Android TV应用开发中,焦点控制是提升用户体验的关键技术。与移动端不同,TV端用户依赖遥控器进行导航,因此需要精确管理焦点移动轨迹。RecyclerView作为高效列表控件,在影视内容展示等场景广泛应用,但其动态回收机制给焦点控制带来挑战。通过配置itemView的focusable属性、实现焦点变化监听与视觉反馈,开发者可以构建符合TV操作习惯的交互体验。本文重点解析RecyclerView在TV环境下的焦点控制策略,包括基础实现、高级导航逻辑处理以及性能优化技巧,帮助开发者解决焦点跳跃、丢失等

weixin_34306593的博客 357

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ui-audit Skill-claude code的UI/UX自动化审计,非常好用

ui-audit是一个为 AI 助手(如 Claude)设计的结构化 UI/UX 审计技能。它让 AI 能够像资深 UX 设计师一样,系统性地审视界面设计,发现可用性问题,并给出基于成熟 UX 原则的可执行建议。。设计得快不是问题,没有章法地瞎搞才是。

篮球界最会写bug的人;程序猿中打球最菜的人。 591

软件测试中的43个功能测试点总结

针对web系统的常用测试方法如下: 1. 页面链接检查: 每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持a

dimanche_的博客 3442

《软件自动化测试成功之道》目录

http://www.china-pub.com/196509    项目实践篇第1章 自动化测试的前期准备工作  1.1 选择合适的项目实施自动化测试 1.2 选择合适的测试用例实现自动化 1.3 对控件的熟悉程度与自动化测试成功实施之间的关系1.4 自动化测试计划1.5 自动化测试脚本开发规范1.6 自动化测试计划文档第2章 标准控件的特殊问题的

软件质量优化 2513

探索性测试:自动化时代测试工程师的核心竞争力与实战方法

在软件测试领域,自动化测试和脚本化测试是确保软件质量、验证功能正确性的重要技术手段,它们通过预设用例和脚本,高效地执行回归测试,保障了软件交付的稳定性和效率。然而,软件系统的复杂性和用户行为的不可预测性,催生了对另一种测试方法的需求。探索性测试作为一种强调测试人员自主思考、即时学习和创造性执行的测试方法,其核心价值在于处理“未知的未知”风险,发现自动化脚本难以覆盖的深层缺陷和用户体验问题。它通过将测试设计、执行与学习并行,形成反馈驱动的循环,能够有效评估业务逻辑的合理性与交互的流畅度。在敏捷开发和DevOp

weixin_34405354的博客 335
上一篇: 《软件测试技术大全》即将出版
下一篇: QTP读取Excel数据的方法
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值