绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
修改
vvyjp 栈主 2020-02-28 13:10:57

LoadRunner 技术参考手册 — 产品实施 Oracle e-Business Suite R12 数据导入参考手册 作者: 制定日期: 更新日期: 目录 1. LoadRunner简介 1 1.1. 引用程序负载测试 1 1.2. LoadRunner解决方案 2 1.3. LoadRunner Vuser技术 4 1.4. LoadRunner Vuser类型 4 2. 环境准备 6 2.1 LoadRunner的安装 6 2.2 R12环境准备 6 3. 数据导入 9 3.1 录制脚本 10 3.1.2 凭证数据录入(R12) 10 3.1.2 供应商数据录入(R12) 11 3.1.3 要点关注 12 3.2 参数设置 12 3.3 后续注意事项 14 3.4 修改脚本 16 附录 21 NCA函数列表 21 待补充内容 24 参考文档 24 1. LoadRunner简介 LoadRunner是用于测试应用程序性能的 Mercury 工具。LoadRunner 通过对整个应用程序进行压力测试来隔离和标识潜在的客户端、网络和服务器瓶颈。 LoadRunner 使您可以在可控制的峰值负载条件下测试系统。要生成负载,LoadRunner 需要运行分布在网络中的数千个虚拟用户(即 Vuser)。只需使用少的硬件资源,这些 Vuser 就可提供一致的、可重复的并可度量的负载,并像真实用户一样使用应用程序。LoadRunner 的深入报告和图提供评估应用程序性能所需的信息。 LoadRunner 通过模拟一个多用户并行工作的环境来对应用程序进行负载测试。当应用程序在负载下运行时, LoadRunner 会准确地度量、监控并分析系统的性能和功能。 1.1. 引用程序负载测试 现代的系统体系结构很复杂。在提供空前强大的功能和灵活性的同时,这些系统也难以测试。单用户测试主要侧重于系统组件的功能和用户界面,而应用程序测试则侧重于整个系统的性能和可靠性。 例如,一个典型的应用程序测试场景描述了星期一早上 1000 个用户同时登录到一个系统。该系统的响应时间是多少?系统会崩溃吗?要能够回答这些问题(以及更多的问题),一个完整的应用程序性能测试解决方案必须做到以下几点: 测试一个组合了各种软件应用程序和硬件平台的系统 确定服务器与任何给定应用程序的适应性 在开发出必要的客户端软件之前测试服务器 模拟多个客户端与单个服务器应用程序之间进行交互的环境 在几十、几百甚至几千个潜在用户的负载情况下测试应用程序 手动测试的局限性 传统的或手动的测试方法只提供不完全的负载测试解决方案。例如,您可以构建一个许多用户同时使用一个系统的环境,然后手动测试整个系统。每个用户使用一台计算机并向系统提交输入内容。然而,这种手动测试方法具有下列缺陷:  昂贵,需要大量的人员和设备  复杂,尤其是使多个测试人员协调和同步  需要高度严密的组织,尤其是要有针对性地录制和分析结果  手动测试的可重复性是有限的 1.2. LoadRunner解决方案 LoadRunner 着眼于解决手动性能测试的缺陷: LoadRunner 用虚拟用户(即 Vuser)代替真实用户来减少人员需求。这些Vuser 模拟真实用户的行为 - 操作实际的应用程序。 由于一台计算机上可以运行许多 Vuser,因此 LoadRunner 减少了测试需要的硬件。 LoadRunner Controller 使您可以从一个单一的控制点简单有效地控制所有的Vuser。 LoadRunner 联机监控应用程序的性能,使您可以在测试执行期间对您的系统进行优化。 测试期间, LoadRunner 将自动录制应用程序的性能。您可以从众多的图和报告选择查看性能数据。 LoadRunner 可检查所出现性能延迟的类型:网络或客户端延迟、CPU 性能延迟、I/O 延迟、数据库锁定延迟或数据库服务器上的其他延迟。LoadRunner 监控网络和服务器资源来帮助您提高性能。 因为 LoadRunner 测试是完全自动的,所以您可以根据需要轻松地反复执行这些测试。 场景 使用 LoadRunner 可以将您的应用程序性能测试需求划分为多个场景。场景定义每个测试会话中发生的事件。例如,一个场景可以定义并控制要模拟的用户数、用户执行的操作以及他们运行模拟时所用的计算机。 Vuser 在场景中, LoadRunner 用虚拟用户(即 Vuser)代替真实用户。运行场景时,Vuser 将模拟真实用户的操作来使用应用程序。一台工作站只能容纳一个真实用户,而多个 Vuser 可以同时运行在一台工作站上。实际上,一个场景可以包含几十、几百甚至几千个 Vuser。 Vuser脚本 Vuser 脚本中描述了场景运行期间 Vuser 执行的操作。运行场景时,每个 Vuser都执行一个 Vuser 脚本。Vuser 脚本包含用来度量和录制应用程序组件性能的函数。 事务 要度量服务器的性能,需要定义事务。事务代表您要度量的一个操作或一组操作。在 Vuser 脚本中,可以通过嵌入适当的 start 和 end 事务语句脚本段来定义事务。例如,您可以定义一个事务,用于度量服务器处理一个查看帐户余额的请求的时间,以及在 ATM 上显示该信息的时间。 集合点 您可以在 Vuser 脚本中插入集合点来模拟服务器上较重的用户负载。集合点指示Vuser 在测试执行期间等待多个 Vuser 到达某一特定点,以便他们可以并行执行某个任务。例如,要模拟银行服务器上的峰值负载,您可以插入一个集合点来指示 100 个 Vuser 同时向他们各自的帐户存入现金。 Controller 您可以使用 LoadRunner Controller 来管理和维护场景。使用 Controller,可以从一台工作站控制一个场景中的所有 Vuser。 负载生成器 执行场景时, LoadRunner Controller 会将该场景中的每个 Vuser 分配给一个负载生成器。负载生成器是执行 Vuser 脚本,从而使 Vuser 可以模拟真实用户操作的计算机。 性能分析 Vuser 脚本包含用来在负载测试会话期间度量和录制系统性能的函数。场景运行期间,您可以监控网络和服务器资源。场景运行后,您可以在报告和图中查看性能分析数据。 假设您要测试一个有许多 Internet 用户访问的在线银行 Web 服务器。该网站为客户提供全面的银行服务,例如转帐和检查帐户余额。要测试此服务器,需要创建一个场景。该场景定义负载测试期间对服务器执行的操作。 在为银行服务器生成负载并对其进行监控的场景运行期间,您要执行下列操作: 模拟服务器上受控的负载的情形 模拟服务器上大的负载的情形 度量负载下的服务器性能 检查所出现性能延迟的类型:网络或客户端延迟、CPU 性能延迟、I/O 延迟、数 据锁定延迟或服务器上的其他延迟 监控负载下的网络和服务器资源 1.3. LoadRunner Vuser技术 在每个 Windows 负载生成器上,您需要安装远程代理调度程序(进程)和LoadRunner 代理。远程代理调度程序(进程)可使 Controller 在负载生成器计算机上启动应用程序。 LoadRunner 代理可使 Controller 和负载生成器互相通信。运行场景时,Controller 将指示远程代理调度程序(进程)启动LoadRunner 代理。该代理根据从 Controller 接收到的指令来初始化、运行、暂停和停止 Vuser。同时,该代理还将各个 Vuser 的状态数据传回 Controller。 1.4. LoadRunner Vuser类型 LoadRunner 有多种类型的 Vuser。每种类型都用于处理当前系统体系结构的不同方面。您可以在场景中使用任意组合的 Vuser 类型,以便创建全面的应用程序测试。以下为可用的 Vuser 类型: 应用程序部署解决方案 适用于 Citrix 协议。 客户端/ 服务器 适用于 MS SQL、ODBC、Oracle Web Applications 11i、DB2 CLI、Sybase Ctlib、Sybase Dblib、Windows Sockets 和 DNS 协议。 自定义 适用于 C 模板、Visual Basic 模板、Java 模板、Javascript 和 VBScript 类型的脚本。 分布式组件 适用于 COM/DCOM、Corba-Java 和 Rmi-Java 协议。 电子商务 适用于 FTP、LDAP、Palm、Web (HTTP/HTML)、Web 服务和双 Web/Winsocket 协议。 Enterprise Java Bean 适用于 EJB 测试和 Rmi-Java 协议。 ERP/CRM 适用于 Baan、Oracle NCA、Peoplesoft 8、Peoplesoft-Tuxedo、SAP-Web、SAPGUI、SAPGUI/SAP-Web 双协议和 Siebel (Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web 和 Siebel-Oracle)协议。 传统 适用于终端仿真 (RTE)。 邮件服务 适用于 Internet Messaging (IMAP)、MS Exchange (MAPI)、POP3 和 SMTP。 中间件 适用于 Jacada 和 Tuxedo (6、7)协议。 流 适用于 MediaPlayer 和 RealPlayer 协议。 无线 适用于 i-Mode、VoiceXML 和 WAP 协议。 2. 环境准备 关于LoadRunner的使用在Oracle e-Business实施的过程中比较常用的是利用Vuser来导入初始化数据及统一修改,另外关于压力测试部分将会另外文档说明。本文档就关于Vuser数据导入部分作相应说明供参考。考虑到针对11i环境而言数据导入方法已经很成熟,本处主要针对R12环境的LoadRunner数据导入方法作相应说明 2.1 LoadRunner的安装 LoadRunner 8.1以上版本支持Oracle e-Business Suite R12。 2.2 R12环境准备 R12服务端环境的准备非常关键,R12版本的Forms 10G stack默认是Servlet mode启动,LoadRunner针对Forms 10G stack支持的模式是Socket mode,所以在启用LoadRunner之前需要APPS DBA变更服务端的Forms 10G的Forms Servlet mode到Forms Socket mode,具体步骤如下: ShutDown应用层所有服务 按以下格式执行从Forms Servlet mode到forms Socket mode转 变命令 格式:$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \ [-contextfile=<CONTEXT_FILE>] \ -mode=socket \ [-port=<Forms port number>] \ -runautoconfig=<No or Yes> \ -appspass=<APPS password> 例如:$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \ -contextfile=$INST_TOP/appl/admin/mycontext.xml \ -mode=socket \ -port=9095 \ -runautoconfig=No 详细的参数说明见下面表格描述。 Parameter Description -contextfile Full path to application tier context file, using the syntax: On UNIX: $INST_TOP/appl/admin/<CONTEXT_NAME>.xml -mode servlet - to enable Forms Servlet mode. This is the default value. socket - to enable Forms Socket mode -port Port number used to run Forms in socket mode. The default port number is 9095. A port number is not needed if servlet mode is used. -runautoconfig Specify whether AutoConfig should be run after changing the forms mode. Possible values are: No - Do not run AutoConfig after enabling Forms servlet/socket mode. This is the recommended value. Yes - Run AutoConfig after enabling Forms servlet/socket mode. -appspass Password for the applications user. Required only if -runautoconfig=Yes. 服务端执行AutoConfig 启动应用层服务 察看是否Forms Server正在运行 $INST_TOP/admin/scripts/adformsrvctl.sh status  访问方法: //<web_host>.<web_domain>:<web_port>/OA_HTML/frmservlet  在完成期初数据导入后,建议从forms Socket mode转变为Forms Servlet mode,方法如下: 格式:$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \ [-contextfile=<CONTEXT_FILE>] \ [-mode=servlet] \ -runautoconfig=<No or Yes> \ -appspass=<APPS password> 示例:$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \ -contextfile=$INST_TOP/appl/admin/mycontext.xml \ -mode=servlet \ -runautoconfig=No 完成后执行AutoConfig 访问模式//<web_host>.<web_domain>:<web_port>/forms/frmservlet 3. 数据导入 主要步骤: 1、录制脚本,脚本分为三大块,INIT部分,Action部分,End部分。 Init:初始化部分,主要操作连接服务器,进入相关责任功能, 启动后运行一次; Action:活动部分,这部分代码会循环运行,具体导入数据的操作; End:结束部分,Action循环指定次数后,运行该部分,可用来退出系统,该部分运行一次; 2、整理数据,设置参数:为需要导入的数据设置参数,Loadrunner将使用这些参数输入数据; 3、修改调整脚本:删除一些无用代码,提供导入效率;或对付一些更复杂的情况; 4、导入数据。 3.1 录制脚本 录制脚本的过程很类似EXCEL的录制宏,操作一遍即可,如果在操作过程中做了无用功,Loadrunner也会记录下来,会影响以后的导入效率。在了解loadrunner语句后可以修改脚本,但好还是在录制之前手工录入一边对录入界面的风格了解过后再准备相应的举措,正式录制的时候尽量一次操作成功,录制一个比较完美的脚本。 本文档分别针对凭证行数据及供应商数据(针对R12,需要选择不同协议)为例,步骤如下。 3.1.2 凭证数据录入(R12) 启动Loadrunner,点击 Create/Edit Scripts, 选择协议 ORACLE NCA,针对APPS Forms界面数据导入。 ORACLE WEB APPLICATION 11i,针对WEB风格界面数据导入。 注:在选择ORACLE WEB APPLICATION 11i协议的时候,如果录制内容过多,录制完毕过后停止的时候,脚本可能会没法产生,可以尝试变更一下License,可以选择10000 web client注册号尝试下。 设置Recording参数。 Application type:Internet Applications; Program to record:选择IE浏览器; URL Address:http://<web_host>.<web_domain>:<web_port>/OA_HTML/frmservlet Record Into Action:Vuser_init; 点击OK,Loadrunner启动IE进入系统并开始录制。 首先进入凭证录入界面,输入凭证头信息。 选择Record into Action: Action 鼠标点击凭证行信息块,选择新建(该动作一定要选择,以便循环使用),针对默认出来的凭证行号,可修改为不同于默认值的数字,便于事件录制(如果保持为默认值,可鼠标Click,后续通过脚本处理亦可,如果仅仅是删除默认值,再录入默认值,LoadRunner是不录制该事件的)。针对借项和贷项可分别输入值,不需要的可输入数字0,仅为了让LoadRunner记录事件而已,后续便于用参数处理。 每一行录制完毕选择保存,因为凭证行在借,贷不平时会有提示,选择是保存即可。 注:实际导入时,当导入后一行数据因为此时借贷是平的,弹出窗口事件没有触发和脚本中的录制触发会有冲突,在导入时后一行出现该类处理错误时,可不用做处理。 录制完毕过后选择Record into Action: vuser_end,关掉凭证录入界面,退出应用系统。然后选择停止录制,保存脚本。 3.1.2 供应商数据录入(R12) 启动Loadrunner,点击 Create/Edit Scripts, 选择协议 ORACLE WEB APPLICATION 11i,针对WEB风格界面数据导入。 注:在选择ORACLE WEB APPLICATION 11i协议的时候,如果录制内容过多,录制完毕过后停止的时候,脚本可能会没法产生,可以尝试变更一下License,可以选择10000 web client注册号尝试下。 设置Recording参数。 Application type:Internet Applications; Program to record:选择IE浏览器; URL Address:http://<web_host>.<web_domain>:<web_port> Record Into Action:Vuser_init; 点击OK,Loadrunner启动IE进入系统并开始录制。 由于在R12里面供应商界面风格与R11i差异很大,所以需要根据界面的风格定制录制方法。 首先选择进入供应商录入菜单,通过供应商编号进行查询(事前已手工录入的供应商信息),进入供应商维护的界面。 选择Record into Action: Action 选择左上角的“供应商”,选择“创建供应商”。这样定制Action循环的时候,每次都可以新建供应商咯。 录制完毕过后选择Record into Action: vuser_end,选择“注销”,然后点击停止按钮,系统保存脚本,录制结束。 3.1.3 要点关注 把握Action循环的要点,录制时的开始必须是有新建事件触发,这样循环时才可以每次循环均会从新建开始。 由于R12有大量界面均为WEB风格,此类录入和传统的Form风格录入在协议,URL地址选择上不同。 录制时遇到默认值时,选择不同于默认值的数值进行录入,便于录制该录入事件后续通过变量处理。 Vuser_end必须有注销或者退出系统的录制,以便于中断Session释放资源。 3.2 参数设置 录制的脚本记录的是手工输入的数据,所以需要建立参数和数据文件,用于大批数据导入; (1) 点击Param List,进入设置参数窗口; (2) 点击New添加参数,该参数命名需要和我们定制的参数文件标题一致,便于进行匹配。 整理数据。 Loadruner默认数据文件为 *.dat 文件,可以使用*.txt和*.csv文件,数据在EXCEL整理后另存为txt(保存类型选择为:文本文件(制表符分隔)(*.txt))或csv格式,数据尾部不能出现空行或空列。建议选择以txt文件以制表符(TAB)作为分隔处理。 数据行为标题行;数据列必须和设置的变量保持一致,每个变量需要有对应的数据(如果相应行步需要录入,可保持为空)。 选择参数对应的数据文件和列。 选择文件:通过File path 选择 ;选择后Loadrunner显示数据预览,并把行数据作为标题。 选择列:通过By name选择。 选择下行:除列,其他所有列均选择Same line AS First_Column_Name(列名称) 替换参数 1)找到输入的数据,点击右键,选择Use existing paramaters。 2)系统列出设置的所有参数,选择并替换,如果有参数没有列出,可通过select from parameter list进行选择。 3)参数会通过{}进行引用。具体参数引用的标示符通过系统菜单:Tools->General Options->Parameterization->Parameter Braces中的Left Brace/Right Brace进行定义的。 设置循环次数 1)点击Runtime Settings,进入设置循环次数; 2)输入Run 次数,就是数据文件的行数(除掉标题行)。 导入数据。 1)点击导入即可; 2)如果导入过程中出错,Loadruner会终止,更改数据后注意 修改循环次数,Loadrunner每次都会从行数据开始运行,所以还需要删除数据文件中已导入的部分。 3)通过协议层数据包处理的规则与用户通过界面进行处理的验证规则是一致的,这样也大可能避免了数据错误的可能性。 3.3 后续注意事项 循环次数:如果循环次数大于数据文件行数,Loadruner会从行开始继续导入,所以为了避免这种错误发生,可以把数据文件中后一行添加一行错误数据(比如不存在的供应商编码),确保Loadrunner运行到这里时能够终止,省的每次都要修改循环次数。 窗口变量:Loadruner是针对窗口进行操作的,有时候同样的窗口但是窗口名不同,Loadruner就会不认了。针对一些动态窗口变量可能有时会出现窗口或者对象无法显示现象,针对LoadRunner 9.0 For R12环境此类问题已解决,不需要再另外提供窗口变量处理。 操作设计:在录制的时候要考虑清楚,循环得部分应该怎么处理,划分清楚init和Action的界限,以及窗口的变化; 常见错误 常见错误1:无法打开数据文件,(1) Loadruner加载数据文件后,不能用其他程序打开(比如EXCEL,记事本等),否则会报错;2)另外一种情况比较奇怪,需要变更文件格式多尝试即可。比如另存为了csv,但是怎么导入都会报这次错误,再另存为txt就行了。同样,txt如果也总报这个错误,另存为csv就可以了。 常见错误2:没有找到窗口或对象,这个错误比较麻烦,是数据问题。主要还是要修改数据,如果比较频繁而且又没办法规范数据的话,需要修改脚本来处理了,另外亦可通过简化录制方法,仅进入窗口,然后退出,察看系统有无报错提示。 3.4 修改脚本 脚本基本上不需要做修改就可以使用,效率上也不会有太大的损失,如果对协议层操作没有信心,可有意放慢录制速度。从脚本上看主要由lr_think_time函数来体现。 Loadrunner整个脚本从ORACLE NCA协议及Oracle WEB APPLICATION 11I看都是由一个个函数构成的,从录制属性看是支持C语言进行结构化编程的,此类内容后续再另行追加,目前有很多内容通过LoadRunner来处理还是很吃力或者几无可能,如果支持结构语言编程的话,将会开辟一个崭新的空间。 函数对激活的对象进行操作,如果这些对象不存在或没有被激活,Loadrunner都会报错,在修改脚本的时候可以按照这个原则在系统中进行调试修改。 函数事例介绍 1)nca_connect_server("192.168.168.6", "9095", "module………"); 链接字符串,如果更换环境,可以直接修改该函数参数; 2)nca_edit_set 文本框编辑,可用变量替代用户及密码,其中密码可以为非加密编码格式,更换用户可修改该函数; 3)nca_lov_retrieve_items("Responsibilities", 1, 15); nca_lov_select_item("Responsibilities", "41_AP_Superuser"); 选择责任,更换责任注意同时修改这两个函数; 4)lr_think_time(14);系统模拟思考时间,可以全部删除,这将是删除多的语句。 通过上面的一些修改,可以简单提高一点效率;函数列表见文档尾页。 变量定义 通过变量定义可以直接替换脚本中的字符串,达到方便修改或共享。 变更环境以后,只需要修改变量值即可。一般此类定义可用在连接不同服务期环境中的若干连接字符串信息。常用的模式有两种,一种是在GLOBALS.H中定义,一种是直接参数文件中定义。 1)GLOBALS.H模式 Loadrunner里默认一个头文件GLOBALS.H,在该文件中设置。 设置格式:类型 *常量名 = 值; 例:一家公司有多个环境多用户,在GLOBALS_H中定义好多个链接字符串、用户名和密码,在导入数据时,直接通过注释GLOBALS_H来切换。在脚本中涉及字符串时用定义的变量名替代即可。 例:GLOBALS_H中设置: /****** 服务端连接信息********/ /*Domain*/ char *ServerURL="test.lanbeibeer.com"; /****** 服务端连接信息********/ 脚本中修改如下: /********脚本中连接字符串和用户登录修改如下*************/ web_add_cookie("oracle.uix=0^^GMT+8:00^p; DOMAIN={ServerURL}"); /********************************************************/ 2)参数定义模式 可在文本文件中定义好,然后直接参数调用该文本文件即可。 例如参数文件格式如下所示: ServerURL ApplicationLoginURL test.lanbeibeer.com http://test.lanbeibeer.com:8001 用户只需要在参数定义中选择导入该参数文件即可。 使用C函数 Loadruner可以使用C函数,语法也和C一样,以解决上面导入供应商信息常见错误为例。 注意:Loadrunner对字符的大小写是敏感的; (1) 用到的函数说明: char strcat ( char *to, const char *from ) 连接字符串; int strcmp ( const char *string1, const char *string2 ) 比较字符串; char strcpy ( char *dest, const char *source ) 复制字符串; int nca_edit_get_text(LPCSTR edit, char *out_string) 取得编辑栏中字符; int nca_get_top_window ( char *winName ) 取windows窗口名; (2) 问题产生原因: 因为有的供应商地址信息不完整,所以在保存的时候,ORACLE会提示“地址信息可能不完整,是否继续的信息”的信息窗口。如果地址信息完整的供应商,则不会出现。 (3) 解决思路:ORACLE判断根据是地址栏的行和城市这两个栏位的属性,如果这两个信息只要有一个为空,就会出现警告窗口。 设置变量,取得地址栏行字符和城市栏字符,如果都为空,则在保存后激活警示窗口,点击确认按钮,再激活地址层窗口;否则直接激活地址层窗口。 (4) 代码如下: /************添加三个变量***********/ char Temp[100]; char City[10]; int Flag; /***********添加如下代码*************/ nca_edit_get_text ("SITE_ADDRESS_LINE1_0",Temp); /* 取地址栏值*/ nca_edit_get_text ("SITE_CITY_0",City); /*取城市栏值*/ Flag = strcmp(City,"")*strcmp(Temp,""); /*比较字符串*/ nca_obj_type("SITE_AMOUNT_INCLUDES_TAX_FLAG_0", 'S', MODIF_CONTROL); /*保存*/ if (Flag = = 0) { nca_set_window("Note"); /* 激活警示窗口*/ nca_popup_message_press("Note", "OK"); /*点击OK关闭窗口*/ nca_set_window("{Windows}"); /*激活Site窗口*/ } nca_win_close("Supplier Sites"); /*关闭地址层窗口*/ (5) 再一个例子,处理导入数据时存在不同币种的情况 /***以下输入币种信息,如果币种列是CNY,我们这段代码就不要再运行***/ nca_edit_get_text("PO_HEADERS_COMMENTS_0",TempString); ComResult = strcmp(TempString,"CNY"); if (ComResult != 0) { nca_button_press("PO_CONTROL_CURRENCY_0"); strcpy(TempString, CurrencyFormName); strcat(TempString, PONumber); nca_set_window(TempString);/*币种输入窗口名,已在后缀加上PO订单号*/ nca_edit_set("PO_CURRENCY_CURRENCY_CODE_0","{CURRENCY_CODE}"); /*币种*/ nca_edit_set("PO_CURRENCY_DISP_RATE_TYPE_0", "{RATE_TYPE}");/*类型*/ nca_edit_set("PO_CURRENCY_RATE_DATE_0", "{RATE_DATE}"); /*汇率日期*/ nca_edit_set("PO_CURRENCY_DISP_RATE_0", "{rate}"); /*汇率*/ nca_button_press("PO_CURRENCY_DONE_BUTTON_0"); /*币种输入窗口确定*/ strcpy(TempString, POFormName); strcat(TempString, PONumber); nca_set_window(TempString); /*订单输入主窗口,窗口名已加上订单号*/ } 注:此处只是提供参考,具体通过C来进行结构化控制的方式后续再另外追加内容。 调试 调试相对比较麻烦,可以保存脚本过后首先进行编译处理,主要还是从事Oracle e-Business Suite产品实施的顾问对脚本不熟悉的原因造成。 1.可以断点和分步运行,可以通过编译来检查脚本是否有错误; 2.不知道哪里查看变量的值,可以通过sprintf()等函数输出到文件; 3.可以插入CVuser消息函数,可以插入其他C函数辅助调试,没有测试; 附录 NCA函数列表 函数 说明 按钮对象函数 nca_button_double_press 在按钮上双击 nca_button_press 激活按钮 nca_button_set 设置指定按钮的状态 组合框对象函数 nca_combo_select_item 在组合框中选择项 nca_combo_set_item 在组合框中设置新项 连接函数 nca_connect_server 连接到 Oracle NCA 服务器 nca_logon_connect 登录到 Oracle NCA 数据库 nca_logon_cancel 与 Oracle NCA 数据库断 编辑对象函数 nca_edit_box_press 单击编辑框消息 nca_edit_click 单击编辑对象 nca_edit_get_text 返回编辑对象中的文本 nca_edit_press 激活编辑字段中的浏览按钮 nca_edit_set 替换编辑对象的全部内容 Flex对象函数 nca_flex_click_cell 单击 Flexfield 窗口中的表单元格 nca_flex_get_cell_data 获取 Flexfield 单元格中的数据 nca_flex_get_column_name 获取 Flexfield 窗口中的列名 nca_flex_press_clear 单击 Flexfield 窗口中的“清除” nca_flex_press_find 单击 Flexfield 窗口中的“查找” nca_flex_press_help 单击 Flexfield 窗口中的“帮助” nca_flex_press_lov 单击 Flexfield 窗口中的“值列表”按钮 nca_flex_press_ok 单击 Flexfield 窗口中的“确定” nca_flex_set_cell_data 在 Flexfield 窗口中插入数据 nca_flex_set_cell_data_press_ok 输入数据之后,单击 Flexfield 窗口中的“确定” 列出项函数 nca_list_activate_item 激活列表中的项( 双击) nca_list_select_index_item 按照索引选择列表项 nca_list_select_item 按照名称选择列表项 nca_lov_auto_select 指定项的个字母 nca_lov_find_value 单击“值列表”窗口中的“查找” nca_lov_get_item_name 按照项的索引编号检索值列表中的项的名称 nca_lov_retrieve_items 检索值列表 nca_lov_select_index_item 按照索引编号从值列表中选择项 nca_lov_select_item 从值列表中选择项 nca_lov_select_random_item 从值列表中选择随机项 JAVA对象函数 nca_java_action 在 Java 对象上执行事件 nca_java_get_value 检索 Java 对象的值 nca_java_set_reply_property 设置 Java 对象的 reply 属性 菜单对象函数 nca_menu_select_item 从菜单中选择项 消息函数 nca_popup_message_press 单击弹出窗口中的按钮 nca_message_box_press 单击消息窗口中的按钮 对象函数 nca_obj_get_info 返回对象属性的值 nca_obj_mouse_click 单击对象 nca_obj_mouse_dbl_click 双击对象 nca_obj_status 返回指定对象的状态 nca_obj_type 在编辑框中键入特殊字符 响应对象函数 nca_response_press_lov 单击“响应”框中的下拉箭头 nca_response_press_ok 单击“响应”框中的“ 确定” nca_response_set_cell_data 向“响应”框中的单元格中插入数 nca_response_set_data 向“响应”框中插入数据 滚动对象函数 nca_scroll_drag_from_min 将滚动条从小化位置 (0) 拖到指定距离处 nca_scroll_line 滚动指定的行数 nca_scroll_page 滚动指定的页数 会话函数 nca_console_get_text 检控制台消息 nca_set_iteration_offset 设置对象 ID 的偏移值 nca_set_server_response_time 设置服务器响应时间 nca_set_exception 指定处理异常的方式 nca_set_think_time 设置思考时间范围 树对象函数 nca_tree_activate_item 激活 NCA 树中的项 nca_tree_collapse_item 折叠树项 nca_tree_expand_item 展开树项 nca_tree_select_item 选择 NCA 树中的项 窗口对象函数 nca_win_get_info 返回窗口属性的值 nca_win_close 关闭窗口 nca_set_window 指明当前窗口的名称 可以使用CVuser函数(如lr_output_message和lr_rendezvous) 可以使用ANSI C函数 待补充内容 1.后续内容是引用之前系统自动产生的数值进行处理。 2.压力测试内容。 3.很多不规则输入很难固定循环次数导入,后续考虑用脚本编程来辅助测试。 4.Oracle WEB Applications 11i协议函数说明。 参考文档 1.Loadruner官方帮助文档。 2.Oracle Metalink官方文档。 3.网络相关论坛。

展开
分享好友

分享这个小栈给你的朋友们,一起进步吧。

创建新的小栈
企业信息化存在普遍现象
创建时间:2020-02-11 17:15:00 分享
原因之一:领导不重视,氛围没形成 原因之二:认识不到位,配合力度不够 原因之三:投资不到位,巧妇难为无米之炊 原因之四:融合发展不够,顶层设计不足 原因之五:创新不够,实施策略针对性不强 原因之六:功能深度不够,面上功夫多 原因之七:开发商利益驱动,为了项目而项目 原因之八:IT人员知识面不宽,引领能力欠缺 原因之九:技术厚度不够,部分难题无解决方案 原因之十:信息部门地位不高,IT人员缺乏积极性
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • vvyjp
    栈主

小栈成员

查看更多
  • VIP讲师团v
  • 栈栈
  • 58沈剑
  • 唐川ITPUB
特邀嘉宾

亲爱的$mastername栈主,

作为我们尊贵的VIP,您可以免费邀请人脉圈的任何人加入小栈,与您共同建设、管理$stackname小栈,为您站场,期待您的小栈聚集各路大牛

⚠️注意事项:

1.被邀请嘉宾与您同享小栈部分权益,可共同活跃、管理小栈内用户;

2.嘉宾可在24小时之内通过下一步给到的链接注册登录,过期失效;

3.为大程度保护您小栈的隐私性,请在安全的环境下发给可信任的用户;

4.链接仅可单人单次使用;

5.目前多可邀请9位嘉宾入驻。

戳我,来吐槽~
修改小栈
修改封面
小栈名称
小栈简介
小栈售价
免费小栈仅享有一次修改为付费的机会,直接修改价格即可;
修改为【付费】后不可再次修改为【免费】,请谨慎操作。
取消 确定

您可以在此修改小栈的图像和简介,如果您是免费小栈,可享受仅1次修改未收费小栈的机会