Oracle EBS R12 系统的web页面项目,性能测试采用组合协议,Oracle NCA 和Web-HTTP/HTML协议进行录制开发脚本。
首先是环境,需要某个版本的浏览器,根据项目的要求来就可以,然后安装Java,Java7以下,Java8不兼容,会导致页面打不开,无法测试;最后点击页面安装插件oaj2se.exe,安装成功后需要设置允许插件,火狐浏览器是在附加组件页面,如下图:

对应插件选择总是激活,有时候选不了,要点击对应插件下面的更多,进入详情页面设置,如下图所示:

如果还设置不了,需要修改配置,浏览器地址栏输入:about:config;搜索框输入:extensions.blocklist.enabled;将属性修改为false;

然后再去修改插件的打开方式为:总是激活,就OK了。
至此,系统运行的环境就OK了,因为测试过程中更换了好几台测试机,以上情况都碰到了。
下面开始录制开发脚本,协议选择就是上面的组合协议就可以,但是需要让开发人员修改服务器为socket模式,可以进行CGI登录,网址格式为:
如果这样录制,录制出来的脚本里面有很多控件都是基于动态id的,不方便回放和修改,很多控件是一个数字来表示,如果想录制到控件的唯一的名称,需要服务器端修改一下配置文件
,这个我和开发要求了很久,他们一直不知道怎么改,找了LR的官方文档,开发说和现在的oracle EBS版本不兼容,最后开发还是找到了修改的方法,再我已经被一堆id给折腾了好几天之后,特记录下来,修改appsweb.cfg文件,增加record=names。然后录制的时候在上面的URL后面加上#record=names,这个也是找了很多资料试验出来的,有的说加?record=names,试了好多方法,都不行,即:
再录制就可以看到控件名称了。这里强烈建议一定要求开发改按name来录制的方式,id的方式每次都有可能不一样,特别是每次服务器重启后更是混乱,深受其害,本来脚本两天可以搞定的,可能两周都搞不定。
不加#record=names录制出来脚本如下:

修改服务器配置和增加#record=names录制出来脚本如下:

最后是参数化和增加检查点,参数化我就不说了,大家应该都会,检查点和单纯HTTP请求的不一样,我简单总结一下,有两种方式,一种是判断当前窗口,一种是判断文本nca_console_get_text函数,我本次测试选用的是判断当前窗口nca_get_top_window函数。
- 获取当前最顶层窗口的名称方式检查点,代码如下:
char topwin[1024];
nca_get_top_window(topwin);
if(strcmp(topwin,"Requests")==0) //Requests为期望出现的窗口名称
lr_end_transaction("XXXXXXXX", LR_PASS);
else
{
lr_output_message("当前窗口为:%s",topwin);
lr_end_transaction("XXXXXXXX", LR_FAIL);
}
注意:比较一定要用strcmp函数,直接比较会失败
- 获取控制器返回的信息作为检查点,代码如下:
char console_text[1024];
nca_console_get_text(console_text);
if(NULL != strstr(console_text,excepted_console_text))
lr_end_transaction("XXXXXXXX", LR_PASS);
else
{
lr_output_message("获取到的信息为:%s",console_text);
lr_end_transaction("XXXXXXXX", LR_FAIL);
}

1万+

被折叠的 条评论
为什么被折叠?



