AutoRunner 功能自动化测试项目实训之参数化过程中脚本的参数传递(十一)

本文主要是介绍AutoRunner 功能自动化测试项目实训之参数化过程中脚本的参数传递(十一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前面我们已经讲解了如何把计算结果作为参数来进行传递,接下来我们继续

深入讲解如何把脚本中的多个参数进行传递,下面是一段计算器的三位数加法

的脚本:

对脚本进行参数化:

注意需要在对象库里面添加对象,数字按钮从1到9全部抓取一遍。

这里完整的脚本如下:

for(ParameterData pd : ar.getParameterDataList("add_3.xls")/*.subList(0, 1)*/)

{

//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数

ar.window("CalcFrame_计算器").clickControl("Button_清除", 23, 12, "left");

ar.window("CalcFrame_计算器").clickControl("Button_1"+pd.getFrom("num1"));

ar.window("CalcFrame_计算器").clickControl("Button_2"+pd.getFrom("num2"));

ar.window("CalcFrame_计算器").clickControl("Button_3"+pd.getFrom("num3"));

ar.window("CalcFrame_计算器").clickControl("Button_加", 23, 14, "left");

ar.window("CalcFrame_计算器").clickControl("Button_4"+pd.getFrom("num4"));

ar.window("CalcFrame_计算器").clickControl("Button_5"+pd.getFrom("num5"));

ar.window("CalcFrame_计算器").clickControl("Button_6"+pd.getFrom("num6"));

ar.window("CalcFrame_计算器").clickControl("Button_等于", 14, 26, "left");

}

 

然后我们再录制下计算结果:

循环参数表执行加法操作,第3句,这一句把临时变量pd保存在了

ar.parameterData参数中,因为在Notepad中还会用到pd参数。第

13句获得计算结果;第14句将结果保存到一个名为result的变量中

,变量名可以是有意义的其他名字。第15句调用Notepad.bsh 保存

计算结果。

 

下面是Notepad.bsh脚本代码(两个脚本必需在同一项目中):

 

完整的脚本如下:

String str1 = ar.parameterData.getFrom("result");

String str2 =

(ar.parameterData.getFrom("num1")+

ar.parameterData.getFrom("num2")+

ar.parameterData.getFrom("num3")+"+"+

ar.parameterData.getFrom("num4")+

ar.parameterData.getFrom("num5")+

ar.parameterData.getFrom("num6")+"=");

ar.window("Notepad_新建文本文档.txt - 记事本").setValue("Edit",str2 + str1);

第1行脚本是把计算器脚本中的计算结果去除放到str1里面,第2到第8行脚本

是从计算器脚本里取出num1到num6的值并且拼接起来形成“674+762=”并且

保存到str2,第9行是把str2和str1拼接起来作为输入的内容输入到记事本,保

存起来。

在计算器脚本下执行得到如下结果:

计算器和记事本上显示的结果:

这里我们还可以把计算结果打印到输出区域:

在获取到计算结果后,添加一行打印到输出的语句:System.out.println(str);

完整的脚本如下:

for(ParameterData pd : ar.getParameterDataList("add_3.xls")/*.subList(0, 1)*/)

{

ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数

ar.window("CalcFrame_计算器").clickControl("Button_清除", 23, 12, "left");

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num1"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num2"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num3"));

ar.window("CalcFrame_计算器").clickControl("Button_加", 23, 14, "left");

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num4"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num5"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num6"));

ar.window("CalcFrame_计算器").clickControl("Button_等于", 14, 26, "left");

String str = ar.window("CalcFrame_计算器").getProperty("Static_结果","value");

System.out.println(str);

ar.parameterData.putInto("result",str);

ar.callScript("Notepad.bsh");

}

保存后再执行脚本:

计算器和记事本里面的显示不变:

这篇关于AutoRunner 功能自动化测试项目实训之参数化过程中脚本的参数传递(十一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/592251

相关文章

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security