首页 > 其他分享 >自动化测试工具Ranorex Studio(十五)-自定义代码ACTION

自动化测试工具Ranorex Studio(十五)-自定义代码ACTION

时间:2024-10-29 12:45:09浏览次数:6  
标签:Action 自定义 代码 条目 ACTION 参数 模块 测试工具

在Recorder提供的功能不能够满足的情况下,可以使用自定义代码。 这里有一些例子,可以方便演示自定义代码Action。
•    自定义验证
•    访问测试用例相关的数据和参数
•    扩展报告
在项目视图窗口中,仔细看一个录制模块文件,你会看到有两个相关的代码文件。
 
图:录制模块‘AddNewEntry’有两个代码文件
注:独立的Recorder内不提供自定义代码Action。
在Ranorex Studio每个录制模块都对应两种类型的源代码文件:
•    自动生成的主录制模块的源代码文件
<RecordingName>.<CodeFileExtension>
•    用户自定义代码的文件<RecordingName>.USERCODE.<CodeFileExtension>
您可以通过右击Action,从右键菜单中选择’View Code’跳转到生成的代码。
 
图:跳转到生成的代码记录Action
每次您更改并保存录制模块,主代码文件’AddNewEntry.cs“就会重新生成一次。 修改代码一定要在UserCode.cs文件中进行。
创建自定义代码Action
您可以,通过转换现有的action创建用户自定义代码Action,或通过工具栏按钮’Add New Action’增加一个新的“用户自定义代码”Action条目。
 
图:将现有的Action条目转换成代码Action 
 
图:为用户自定义代码条目创建方法名称 
 
图:使用右键菜单项‘View Code’跳转到对应代码
创建一个新的自定义代码Action后,录制模块类中就会添加一个新的方法。 如果你将现有的Action条目转换,那么生成的新方法中也会包含该操作的代码。

1.    namespace MyFirstTestProject
2.    {
3.        public partial class AddEntry
4.        {
5.            /// <summary>
6.            /// This method gets called right after the recording has been started.
7.            /// It can be used to execute recording specific initialization code.
8.            /// </summary>
9.            private void Init()
10.            {
11.                // Your recording specific initialization code goes here.
12.            }
13.    
14.            public void ClickOnPasswordField()
15.            {
16.                Report.Log(ReportLevel.Info, “Mouse”, “Mouse Left Click item ‘FormAdd_Entry.TabPageList.InputFields.TextPassword’ at 175;9.”, repo.FormAdd_Entry.TabPageList.InputFields.TextPasswordInfo);
17.                repo.FormAdd_Entry.TabPageList.InputFields.TextPassword.Click(“175;9”);
18.            }
19.    
20.        }
21.    }

自定义代码Action和参数
自Ranorex3.3开始,就可以在自定义代码Action使用参数。 您可以通过(字符串)值向方法传递,这样就能在测试环境中获得更大的灵活性。
要在一个新的自定义代码Action中使用参数,只需按一下旁边的单元格中键入一个值作为方法的参数(如’WordPressDemo’)。
 
图:自定义代码Action参数
为了提高灵活性,您可以使用变量,而不是硬编码值。
 
图:创建一个新的变量作为参数
当然,一个Action也能够使用多个参数。 如果有没有更多的可用列来输入参数(在GUI上最多三个),你可以使用浏览按钮来访问Ranorex的参数编辑器。
 
图:浏览按钮访问Ranorex参数编辑器
你会发现现有的参数都在这个Ranorex编辑器中。 在这里,你也可以重命名现有的参数和添加额外的参数。
 
图:Ranorex参数编辑器:管理用户代码参数
声明参数值和变量后,你可以切换到自定义代码界面,并使用传递过来的参数..
1.     public void AddEntryWithParams(string aTitle, string aUsername, string aPassword, string aURL)
2.    {
3.     MyFirstTestProjectRepository MyRepo = MyFirstTestProjectRepository.Instance;
4.    
5.     // Set text fields
6.     MyRepo.AddEntry.TabSheetAddEntry.Title.TextValue = aTitle;
7.     MyRepo.AddEntry.TabSheetAddEntry.UserName.TextValue = aUsername;
8.     MyRepo.AddEntry.TabSheetAddEntry.Password.TextValue = aPassword;
9.     MyRepo.AddEntry.TabSheetAddEntry.Repeat.TextValue = aPassword;
10.     MyRepo.AddEntry.TabSheetAddEntry.URL.TextValue = aURL;
11.    }
 
此外,可以直接在代码界面编写要用到的方法,然后在RanorexRecorder中调用。 在这里,你也可以使用方法重载。
 
图:选择一个重载的方法 
 
图:Ranorex参数编辑器支持管理重载方法的参数和变量
代码中的条件语句
编写用户代码的另一个原因是从例如文本框这样的UI元素中读取文本值,然后在后续的自动化脚本中复用。
注:在录制模块中尽量只创建小巧并易于维护的自定义代码Action。 如果想要编写的方法也可用于其他测试用例,请创建一个代码模块(见课程7:代码模块 )来代替。
在之前的第3课:数据驱动的测试中创建了‘DeleteEntry’录制模块,有三个简单的Action来实现删除所选条目(选择条目,打开右键菜单,并选择右键菜单项)。 正如你可以看到,如果只是选中了一个条目,是可以顺利执行下去。 要做到这一点,就可以使用代码的条件语句。
第一步,打开“DeleteEntry”录制模块,然后选择最后两个条目,因为如果条目被选中,只有他们应该执行。 在右键菜单中点击’Merge Items to User Code Item’菜单项。
 
图:右键菜单项‘Merge Items to User Code Item’
这样做了以后,这两个Action都合并到一个自定义代码Action中。 给这个方法取一个有意义的名称(例如“DeleteItemIfFocused)。 单击右键菜单项’View User Code’,切换到代码视图中。 最后调整代码。
1.    public void DeleteItemIfFocused()
2.    {
3.        if (repo.MainForm.Entry.HasFocus) {
4.    
5.            Report.Log(ReportLevel.Info, “Mouse”, “Mouse Right Click item ‘MainForm.Entry’ at 127;10.”, repo.MainForm.EntryInfo);
6.            repo.MainForm.Entry.Click(System.Windows.Forms.MouseButtons.Right, “127;10”);
7.    
8.            Report.Log(ReportLevel.Info, “Mouse”, “Mouse Left Click item ‘KeePass.DeleteEntry’ at 168;14.”, repo.KeePass.DeleteEntryInfo);
9.            repo.KeePass.DeleteEntry.Click(“168;14”);
10.        }
11.    
12.    }

标签:Action,自定义,代码,条目,ACTION,参数,模块,测试工具
From: https://blog.csdn.net/2301_77588508/article/details/143231540

相关文章

  • 面试官:自定义Loader和Plugin实现过吗?
    Loader案例:多语言翻译Loader这个自定义Loader旨在支持多语言翻译功能。在项目开发中,文本字符串通常会放在一个JSON文件中,如 en.json 和 zh.json,分别用于存储不同语言的文本。自定义Loader可以在编译过程中将代码中的特定标记(如 __t('KEY'))替换为对应语言的字符串,......
  • ORACLE自定义函数
    CREATE[ORREPLACE]FUNCTION函数名称(arg1[{IN|OUT|INOUT}]TYPE1[DEFAULTVALUE1], [arg2[{IN|OUT|INOUT}]TYPE2[DEFAULTVALUE1]],……[argn[{IN|OUT|INOUT}]TYPE[DEFAULTVALUE]])[AUTHIDDEFINER|CURRENT_USER]RETURNreturn_typeIS|A......
  • dedeCMS 自定义表单地区联动类型不可用
    问题:自定义表单地区联动类型不可用。解决办法:打开 /dede/templets/diy_field_edit.htm 文件,找到:<optionvalue="stepselect">联动类型</option-->修改为:<!--><optionvalue="stepselect">联动类型</option>打开 /dede/templets/diy_field_......
  • vue2-自定义全局toast提示插件
    编写toast.vue在components文件夹下新增toast文件夹,并在toast文件夹中新增index.vue文件`<template><divid="toast"><spanclass="toast"@mouseleave="start"@mouseenter="stop":style="{top:styleTop,colo......
  • 【揭秘】如何用ConstraintValidator自定义校验注解,让你的代码更简洁高效!
    在Java中,自定义校验注解(CustomValidationAnnotation)通常用于BeanValidation框架(如HibernateValidator),以便对特定字段或方法参数进行验证。以下是如何创建和使用自定义校验注解的详细步骤和代码示例:1.定义自定义校验注解首先,我们需要定义一个自定义校验注解。这个注解需......
  • GaussDB数据库SQL系列-自定义函数
    一、前言华为云GaussDB数据库是一款高性能、高安全性的云原生数据库,在GaussDB中,自定义函数是一个不容忽视的重要功能。本文将简单介绍一下自定义函数在GaussDB中的使用场景、使用优缺点、示例及示例解析等,为读者提供指导与帮助。二、自定义函数(Function)概述在SQL中,自定义函数(Fu......
  • 13 Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索
    文章目录Docker容器单机网络架构全攻略:使用自定义桥接的**实践与探索**五使用自定义docker桥接网络5.1重新创建新的容器5.2重新创建新的容器,并且指定网络5.3docker网桥切换Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索五使用自定义do......
  • [笔记] SpringBoot3 使用 EasyExcel 封装工具类实现 自定义表头 导出并实现 数据格式
    在现代企业应用中,数据导出功能是非常常见的需求。特别是在处理大量数据时,将数据导出为Excel文件不仅方便用户查看和分析,还能提高数据处理的效率。ApachePOI是一个常用的JavaExcel处理库,但它在处理大数据量时性能较差。为此,阿里巴巴开源了EasyExcel,这是一个基于Java......
  • Flutter 自定义组件继承与调用的高级使用方式
    ✅近期推荐:求职神器https://bbs.csdn.net/topics/619384540......
  • 博客园自定义页面样式
    TheFirsttoSay花了两天,重写了博客的页面样式。整体风格是按照_darkgreentrip_的风格去改的,使之更接近苯人的风格。最后在结尾放了一些格子可以用来导航,有好用的网站大概会放在这里。自己其实有做过导航站,但是由于挂在GitHub上,网速比较慢,现在扔在下面平时也稍微能用用()下面贴......