自动化测试工具Ranorex Studio(二十五)-库的拆分

默认地,每一个Ranorex Studio项目包含一个对象库文件,这个文件自动用在每一个新创建的录制中。你可以在一个单独的库文件中管理一个测试套件项目中所有的UI元素,但是在一个自动化测试项目中多个对象库的存在还是有一些原因的:
.测试不同的用户界面
.通用的模块使用通用对象库
.为复杂的识别使用高级的RanoreXPath库
.多个测试人员工作在同一个自动化测试项目中
 
测试不同的用户界面
如果你的测试套件包含,比如一个web应用的测试用例和一个客户端应用的用户界面的测试,两个库就有用了。一个是用来管理web应用的UI元素,同时另一个专门存储客户端应用的UI元素。虽然你可以在一个库中用简单文件夹分组的拆分,但是团队工作中,拆分尤其有意义。
通用模块使用通用对象库
库可以(而且应该)以录制模块和代码模块那样的方式被模块化和重用。例如,当你考虑一个富客户端应用的主要菜单、功能区或工具条时,你将会创建小的可重用的录制,点击主菜单的’File’ |’Open’ |’Handle the Open File Dialog’ |等。所有这些可重用的模块与主菜单,主工具条或其他类似的控件,常见的控件一起工作,它们应该存放在一个专门为界面上通用的对象创建的对象库中。
高级的RanoreXPath表达式
另一个建立分对象库的原因可以是专门用来存储那些高级的RanoreXPath表达式,这些RanoreXPath表达式用于那些手工创建的新动作,而不是用于通过录制创建的动作。
多个测试员在同一个项目中
只要你独自工作在一个自动测试项目中,使用单独的对象库不成问题。当在一个团队中工作的时候,如果团队中的每个人都通过点击“Record”按钮来创建自动化测试模块的话,建议牢记谁负责主库,谁可以重命名对象和重建库。拆分对象库的主要原因是为了避免破坏其他成员使用的库条目的意外。
添加一个新库
Ranorex Studio可以处理多个对象库。当为KeePass应用执行自动测试时,拆分的库文件有利于测试复杂的配置对话框,它可以保持你的对象库结构简单,并且为多个用户在不同的库文件上工作提供了可能性。
点击Ranorex Studio工具栏的“Add Repository”按钮,向你的项目添加一个新库。
 
图:创建一个新的对象库文件
 
图:KeePass中新对象库表示复杂的选项对话框
 
注意:关键是理解对象库必须工作在Ranorex中,这个基本原则不依赖于所使用的技术。
注意:不同技术识别元素的方式有一些不同,因此RanoreXPath对于不同的技术有点儿不同。一旦你的库用健壮的方式识别到元素,不管你的测试用例用的是哪种技术都没有关系。当然,在Ranorex studio中,不同的技术可以在同一个自动化测试项目中使用或者结合起来使用。
在代码模块使用多个对象库
现在你的测试项目包括两个对象库文件。一个录制模块仅可使用一个对象库,而代码模块可以使用多个对象库。
C#
[TestModule(“C5B0C011-274A-4E54-83DB-0CE28DB95509″, ModuleType.UserCode, 1)]
public class OptionsCodeModule : ITestModule
{
// Repository object to access UI elements of KeePass Application
MyFirstTestProjectRepository repo = MyFirstTestProjectRepository.Instance;
// Repository object to access UI elements of KeePass Options Dialog
KeePassOptionsRepository OptionsRepo = KeePassOptionsRepository.Instance;
/// <summary>
/// Constructs a new instance.
/// </summary>
public OptionsCodeModule()
{
// Do not delete – a parameterless constructor is required!
}
/// <summary>
/// Performs the playback of actions in this module.
/// </summary>
/// <remarks>You should not call this method directly, instead pass the module
/// instance to the <see cref=”TestModuleRunner.Run(ITestModule)”> method
/// that will in turn invoke this method.</see></remarks>
void ITestModule.Run()
{
Mouse.DefaultMoveTime = 300;
Keyboard.DefaultKeyPressTime = 100;
Delay.SpeedFactor = 1.0;
// Click the Save-Button in KeePass MainForm
repo.KeePass.ButtonSave.Click();
// Check the option to AutoClear the Clipboard
OptionsRepo.FormOptions.TabSecurity.CheckBoxClipboard_auto_clear.Checked = true;
}
}
 
VB.NET
 
<testmodule(“baa60b6c-5dd1-4eb5-bc39-fdfd65775742″, moduletype.usercode,=”” 1)=””> _
Public Class UserCodeModule1
Implements ITestModule
”’ Repository object to access UI elements of KeePass Application
Private repo As MyFirstTestProjectRepository = MyFirstTestProjectRepository.Instance
” Repository object to access UI elements of KeePass Options Dialog
Private OptionsRepo AS KeePassOptionsRepository = KeePassOptionsRepository.Instance
”’ <summary>
”’ Constructs a new instance.
”’ </summary>
Public Sub New()
‘ Do not delete – a parameterless constructor is required!
End Sub
TestRepository repo = TestRepository.Instance;
”’ <summary>
”’ Performs the playback of actions in this module.
”’ </summary>
”’ <remarks>You should not call this method directly, instead pass the module
”’ instance to the <see cref=”TestModuleRunner.Run(Of ITestModule)”> method
”’ that will in turn invoke this method.</see></remarks>
Sub Run() Implements ITestModule.Run
Mouse.DefaultMoveTime = 300
Keyboard.DefaultKeyPressTime = 100
Delay.SpeedFactor = 1.0
”’ Click the Save-Button in KeePass MainForm
repo.KeePass.ButtonSave.Click
”’ Check the option to AutoClear the Clipboard
OptionsRepo.FormOptions.TabSecurity.CheckBoxClipboard_auto_clear.Checked = true
End Sub
End Class
</testmodule(“baa60b6c-5dd1-4eb5-bc39-fdfd65775742”,>

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Centos下安装Maven(无坑版)

Linux 安装 Maven Maven 压缩包下载与解压 华为云下载源&#xff0c;自行选择版本 下面的示例使用的是 3.8.1 版本 wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz解压 tar -zxvf apache-maven-3.8.1-bin.tar.gz移…

99、Python并发编程:多线程的问题、临界资源以及同步机制

引言 多线程技术的引入&#xff0c;可以帮助我们实现并发编程&#xff0c;一方面可以充分利用CPU计算资源&#xff0c;另一方面&#xff0c;可以在用户体验上带来极大的改善。但是&#xff0c;多线程技术也存在一些问题。本文就来简单聊一下多线程引入导致的问题&#xff0c;以…

jmeter常用配置元件介绍总结之取样器

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 jmeter常用配置元件介绍总结之取样器 2.取样器2.1.HTTP请求2.2.Debug Sampler2.3.JSR223 Sampler2.4.JDBC Connection Configuration和J…

Python练习11

Python日常练习 题目&#xff1a; 编写一个石头剪刀布游戏&#xff0c;该程序要求完成如下功能&#xff1a; (1) 显示游戏规则&#xff0c;提醒用户输入一个1-3的整数或者直接回车。 用户输入回车时游戏结束。 用户输入不合法&#xff08;包括输入的…

什么是欧拉角和四元数

涉及机器人调度工作的一些基本概念整理理解 目录 什么是欧拉角和四元数 &#xff1f;相关工具网站相关工具代码 什么是欧拉角和四元数 &#xff1f; 这里画了一张图&#xff0c;简明方便理解&#xff1a; 欧拉角 (Euler Angles) 是一种描述物体在三维空间旋转姿态的方法&…

关于几种卷积

1*1卷积 分组卷积&深度可分离卷积 空洞卷积、膨胀卷积 转置卷积 https://zhuanlan.zhihu.com/p/80041030 https://yinguobing.com/separable-convolution/#fn2 11的卷积可以理解为对通道进行加权&#xff0c;对于一个通道来说&#xff0c;每个像素点加权是一样的&am…

std::copy

std::copy 是 C 标准库中的一个算法&#xff0c;用于将一个序列中的元素复制到另一个位置。这个算法定义在 <algorithm> 头文件中。 --- 函数原型 std::copy 有几个不同的重载版本&#xff0c;但以下是最常用的两个&#xff1a; template <class InputIterator, c…

PyQt5实战——翻译的实现,第一次爬取微软翻译经验总结(八)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…

【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!

数据集列表 帮忙采集开源数据集&#xff0c;包括YOLO格式数据集和Pascal VOC格式数据集&#xff0c;含图像原文件和标注文件&#xff0c;几百张到几千张不等&#xff0c;国内外公开数据集均可。 针对目标检测&#xff0c;YOLO系列模型训练&#xff0c;分类训练等。 部分数据…

Vue前端开发:元素动画效果之过渡动画

在Vue中&#xff0c;专门提供了一个名称为transition 的内置组件&#xff0c;来完成单个DOM元素的动画效果&#xff0c;该组件本身和它的顶层并不渲染动画效果&#xff0c;而只是将动画效果应用到被组件包裹的DOM元素上&#xff0c;代码实现的格式如下所示。 <transition&g…

【C/C++】strcmp函数的模拟实现

零.导言 之前我们学习了strcmp函数&#xff0c;不妨我们现在尝试模拟实现strcmp函数的功能。 一.实现strcmp函数的要点 strcmp函数是一种字符串函数&#xff0c;可以比较字符类型的数组&#xff0c;因此我们自定义的模拟函数需要两个char类型的指针参数&#xff1b;第一个字符…

ima.copilot:智慧因你而生

在数字化时代&#xff0c;信息的获取、处理和创作已经成为我们日常工作和学习中不可或缺的一部分。腾讯公司推出的ima.copilot&#xff08;简称ima&#xff09;正是为了满足这一需求&#xff0c;它是一款由腾讯混元大模型提供技术支持的智能工作台产品&#xff0c;旨在通过智能…

string类

1. 标准库中的string类 1.1 string类(了解) string - C Reference 在使用string类时&#xff0c;必须包含 # include头文件以及 using namespace std; 1.2 auto和范围for 1&#xff09;auto关键字 作为一个新的类型指示符来指示编译器&#xff0c;auto声明的变量必须由编…

元数据管理是如何在ETL过程中发挥作用的?

ETL&#xff08;抽取、转换和加载&#xff09;技术在现代大数据处理中起着至关重要的作用。ETL技术主要用于将不同来源、格式和结构的数据抽取到一个中心化的数据仓库&#xff0c;并进行转换和加载&#xff0c;进而提供一致、高质量的数据给数据分析和报告工具。然而&#xff0…

vscode Comment Translate 反应慢 加载中...

Comment Translate 版本&#xff1a;v2.3.3 你是不是疑惑切换了 Bing 源也无法使用还是加载中… 那么可能你切换Bing后没重启vscode 下面是切换成功后的插件日志&#xff0c;一定要重启vscode&#xff0c;只是禁用和启用插件不行的&#xff0c;另外google是没用的&#xff0c;用…

机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

如何搭建 ELK【elasticsearch+logstash+kibana】日志分析系统

一、为什么需要日志分析系统&#xff1f; 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷&#xff0c;性能安全性&#xff0c;从而及时采取措…

Android智能座驾,carlink场景截屏黑屏问题

背景 项目开发过程中&#xff0c;遇到如下问题&#xff1a; 【操作步骤】 1、建立导航音乐分屏 2、连接Carlink&#xff0c;车机端打开任意Carlink应用&#xff0c;点击音乐图标回到分屏 【结果】 页面会出现1s黑屏再显示分屏的情况 详细分析 比较怀疑是截屏的方法拿到的图片就…

Go语言的常用内置函数

文章目录 一、Strings包字符串处理包定义Strings包的基本用法Strconv包中常用函数 二、Time包三、Math包math包概述使用math包 四、随机数包&#xff08;rand&#xff09; 一、Strings包 字符串处理包定义 Strings包简介&#xff1a; 一般编程语言包含的字符串处理库功能区别…