【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

使用 RIATest 4 测试 Flex 应用程序

  • 2011-08-16
  • 本文字数:3268 字

    阅读完需:约 11 分钟

目录

要求

预备知识

熟悉基本测试自动化概念将极有帮助。为了给示例应用程序引入缺陷,必须掌握 Flex 应用程序和 Flash Builder 的知识。

用户级别

中级

必须的产品

示例文件

其他必须产品

RIATest 4

这篇文章解释了如何开始使用 RIATest 4 测试您的 Flex 应用程序。RIATest(如图 1 所示)是一种多平台的测试自动化工具,它利用 Flex Automation Framework 来自动化用户与 Flex 应用程序内的 GUI 组件的交互。它使用一种类似于 ActionScript 的简单脚本语言。RIATest 可以自动化 Flex 2、Flex 3、Flex 4.x 和 Flex 4.5.x 应用程序。它同时支持基于浏览器的 AIR 应用程序和桌面 AIR 应用程序。

图 1. 启动后的 RIATest 4。

在这篇文章中,您将为一个基于浏览器的基本 Calculator 应用程序创建并执行一项自动化测试,此应用程序包含在本文的示例文件中。

要测试 Flex 应用程序,您需要执行以下四个步骤:

  1. 创建一个 RIATest 项目。
  2. 记录一次测试。
  3. 运行测试。
  4. 检查结果。

创建一个 RIATest 项目

用于您的应用程序的一组测试脚本称为一个 _ 项目 _。项目定义了脚本本身及其执行顺序。在 RIATest 中,Project View 显示了 Project Tree,其中包含项目内的所有脚本。您可以将脚本划分为组。可以通过在树中拖放脚本项来更改脚本的排序(这也会更改执行顺序)。

在创建第一个项目之前,您需要设置一个要测试的 Flex 应用程序。下载本文的示例文件 Calculator.zip,并将其导入 Flash Builder。

接下来,在下载并安装了 RIATest 之后,按照以下步骤来创建第一个项目:

  1. 启动 RIATest 4 并选择 File > New Project。

图 2. New Project 对话框。

  1. 在 New Project 对话框(如图 2 所示)中,选择 Flex Application Testing 作为 Project Type。

  2. 键入 Calculator 作为 Project name。

  3. 指定一个项目文件夹,此文件夹将用于存储项目资源。

  4. 选择 In Browser, Using Local Loader 作为 Loading Type。
    这是适用于 Flex 应用程序的最简单的 Loading Type 选项。在选中此选项时,RIATest 将在浏览器中打开一个特殊的预加载器,即 Runtime Loader,它随即加载您的应用程序 SWF 文件,以便进行测试。

  5. 选择您要测试的应用程序 SWF 文件,并选择用于构建它的 Flex SDK。

  6. 单击 OK。
    此时将在指定的位置创建一个新的 RIATest 项目,同时也会为其添加一个空白的 Startup.rts 测试脚本(如图 3 所示)。

图 3. 带有空白 Startup.rts 脚本的新项目。

现在,您可以启动 Flex 应用程序,准备记录您的第一次测试。

  1. 单击工具栏中绿色的 Launch 按钮。
    浏览器将打开,应用程序将加载。您可以在浏览器中看到 Calculator 应用程序,外观与平时完全一致。除此之外,还可以看到 RIATest Agent 工具栏。Agent 工具栏标题表示 RIATest 已经就绪(Ready)(如图 4 所示)。

图 4. 所测试的应用程序正在浏览器中运行。

记录测试

现在,您就可以开始记录测试。

  1. 单击 Agent 工具栏上的红色 Record 按钮(如图 5 所示)。

图 5. Agent 工具栏上的 Record 按钮。

此时,您可以开始与 Flex 应用程序交互,就像正常使用应用程序一样。您的所有操作都将被记录下来。对于本示例来说,您将计算 12+15,随后使用 Radix 下拉列表将其转换为十六进制。

  1. 依次单击 1、2、+、1、5 和 = 按钮。
  2. 选择 Hex 作为 Radix。
  3. 单击 Record 按钮停止记录,并返回 RIATest IDE 查看已经记录的内容(如图 6 所示)。

图 6. 所记录的测试脚本。

如您所见,这里记录了几行脚本。每行都对应于您对该应用程序执行的一项操作。例如,在单击下拉列表的下箭头时,记录了第 7 行。

复制代码
SparkDropDownList("radix")=>open();

这一行表示,对名为 radix 的一个 SparkDropDownList 组件执行了 open 操作。

接下来,您将为测试添加一条验证语句。验证语句通常是在您希望 RIATest 在测试执行过程中验证应用程序用户界面组件的某些属性时添加到测试之中的。如果属性与预期值不匹配,则将报告故障。有多种不同的验证语句,RIATest 手册中记录了这些语句。在本例中,您将使用一条基本验证语句验证计算的结果。
8. 返回 Flex 应用程序,再次启动记录。
要为计算结果字段添加验证,您应使用 RIATest Inspect 函数,并指向希望验证的结果字段。

  1. 单击 Agent 控制栏上的 Inspat 按钮。
  2. 将鼠标指针移动到结果字段。可以看到,在移动指针的过程中,突出显示了各种组件。
  3. 对于本示例,请单击结果组件 SparkTextInput(“editNum”)。此时将出现 RIATest Object Inspector(如图 7 所示)。

图 7. RIATest Object Inspector 窗口。

在左侧可以看到 GUI 组件树,选中了 editNum 字段,右边则列出了该组件的属性。

接下来,您将为结果字段的 text 属性添加验证,确保其值为 1B。
13. 单击绿色的 Verify 按钮。 此时将出现另外一个窗口,列出了结果文本字段的属性(如图 8 所示)。
14. 选择您希望在测试过程中验证的属性。默认情况下将选择 text 属性,因此只需单击 OK 即可。

图 8. 选择要验证的属性的界面。

  1. 返回 RIATest IDE. 可以看到已经创建了一条 verifyEqual 语句(如图 9 所示)。这条语句将在测试回放过程中验证 editNum 元素的 text 属性。

图 9. 新的 verifyEqual 语句。

至此您已经完成了第一次测试的记录。
18. 停止记录,单击 Terminate 按钮关闭浏览器。

运行测试并检查结果

您已经创建了一个项目并且记录了第一次测试。现在,即可运行测试并查看结果。

  1. 单击 RIATest 中的 Run 按钮。 此时将打开浏览器窗口,应用程序将载入,并且将对应用程序执行您之前记录的操作。等待测试完成,浏览器窗口关闭。

测试的结果显示在 RIATest IDE 中。可以看到测试的持续时间,而且整体结果为 ALL OK(如图 10 所示)。

注意:如果您正在使用试用版的 RIATest,您将看到 WARNINGS FOUND,而不是 ALL OK,在执行日志中将看到一条警报,提醒您试用版的过期时间。

结果中还包含启动、关闭和项目中各脚本的统计信息。在本例中,项目中仅有一个脚本。您可以看到执行了 8 项操作和 1 次验证。

图 10. 测试结果。
2. 单击脚本名称 (Startup.rts) 查看脚本的执行详情(如图 11 所示)。 您可以看到操作以及您之前定义的一项验证。如果单击行号,RIATest 将显示对应于消息的实际叫本行。
3. 单击第 9 行。< 您可以看到之前创建的 verifyEqual 语句所生成的验证。

图 11. 脚本的执行日志。

要查看 RIATest 如何报错,您需要更改应用程序,使之无法正常工作。
4. 首先在 Flash Builder 中打开 Calculator.mxml 文件。
5. 在 Calc () 函数中找到以下行: ```

case ‘+’: res = lastVal + val; break;

复制代码
6. 使用以下代码替换这一行: ```
case '+': res = lastVal + val + 1; break;
  1. 生成应用程序。 现在即可再次运行测试,看看 RIATest 如何识别应用程序中的问题。
  2. 在 RIATest 中单击 Run 按钮。 测试将开始运行,随后显示 RIATest IDE(如图 12 所示)。您可以看到,执行在 verifyEqual 语句处停止,同时显示了一条错误消息。这条消息表示,editNum 字段的文本与预期值不匹配。

图 12. RIATest 中识别的错误。
9. 要继续执行,请再次单击 Run 按钮。 测试的结果现表明发现了错误(如图 13 所示)。

图 13. 失败测试的结果。
10. 向下滚动,您将看到第 9 行生成了错误。

后续内容

至此,本文的内容已经结束。您成功创建了一个简单的 RIATest 项目、记录了一次测试、运行了测试并检查了结果。

请抽几分钟的时间进一步研究一下 RIATest。您可以右键单击项目并选择 Add New Script 来创建新测试。您可能希望创建另外一个项目,开始测试您自己的 Flex 应用程序。

若手动执行,基本测试和递归测试可能极为耗时、易于出错。使用 RIATest 自动化这些测试是一种直接的节约时间的方法,可确保您的测试每一次都能准确完成。

有关 RIATest 的更多信息,请访问 www.riatest.com

clip_image017

本文遵守知识共享—署名- 非商业性使用- 相同方式共享3.0 Unported License (Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License) 许可条件。

查看原文: Flex application testing with RIATest 4

2011-08-16 01:13968

评论

发布
暂无评论
发现更多内容

开发者独立搭建一个跨模态搜索应用有多难?

Jina AI

深度学习 云原生 神经搜索 跨模态应用 多模态数据

并发程序的隐藏杀手——假共享(False Sharing)

了不起的程序猿

编程 高并发 java程序员

Mybatis中#{}和${}的区别

开发微hkkf5566

百度APP Android包体积优化实践(三)资源优化

百度Geek说

Andriod

【SpringBoot 一】SpringApplication启动类的Args详解

石臻臻的杂货铺

spring-boot 8月月更

未来已来,只是尚未流行

石云升

读书感悟 未来社会 8月月更 未来以来

如何通过使用“缓存”相关技术,解决“高并发”的业务场景案例?

冉然学Java

高并发 java; 单线程 redis'

基于 Next.js实现在线Excel

葡萄城技术团队

前端 在线excel nextjs 表格 控件

使用python获取浏览器收藏夹和历史浏览记录,然后可以...

技能实验室

签约计划第三季

IDC:阿里云稳居中国大数据平台公有云市场第一位

阿里云大数据AI技术

阿里云

Pisanix v0.2.0 发布|新增动态读写分离支持

SphereEx

数据库 开源 ShardingSphere SphereEx

SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克

Jerry Wang

云原生 Cloud 云平台 SAP 8月月更

干货丨数学规划视角下的分货优化解题思路

杉数科技

运筹优化 智能分货 供应链计划 仓储优化 门店分货

《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出

蓝海大脑GPU

《分布式云最佳实践》分论坛,8月11日深圳见

阿里云弹性计算

分布式云 飞天 数字化升级 一云多形态

智能电视可以打开小程序应用,再也不用头痛内存了

Geek_99967b

小程序

Vue3 初探

怀府风

大数据开发,Hadoop Spark太重?你试试esProc SPL

华为云开发者联盟

大数据 开源 后端

【SpringBoot 二】spring.factories加载时机分析

石臻臻的杂货铺

springboot 8月月更

快速打造安全的车联网平台

Geek_99967b

小程序

如何在Linux (CentOS7.3) 下安装JDK1.8?【一篇文章教会你】

Bug终结者

java; Linux Kenel 8月月更

直播系统开发——直播间架构的设计及难点分析

开源直播系统源码

软件开发 语聊房 语音聊天源码 直播系统开发

从-99打造Sentinel高可用集群限流中间件

艾小仙

Java 高可用 sentinel 集群限流

重构指标之如何监控代码圈复杂度

京东科技开发者

测试 重构 软件重构 分布式应用软件

leetcode 48. Rotate Image 旋转图像(Medium)

okokabcd

数组 LeetCode 数据结构与算法

中大型商业银行堡垒机升级改造就用行云管家!必看!

行云管家

信息安全 银行 堡垒机 IT安全

化繁为简,聊一聊复制状态机系统架构抽象

阿里技术

数据库 架构

兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接

兆骑科创凤阁

2022年7月国产数据库大事记-墨天轮

墨天轮

数据库 腾讯云 GaussDB 国产数据库 KingBase

HTTP和HTTPS的区别

开发微hkkf5566

信创是什么意思?涉及哪些行业?为什么要发展信创?

行云管家

信息安全 信创

使用RIATest 4测试Flex应用程序_Java_Tigran Najaryan_InfoQ精选文章