• 【loadrunner】:SAP-GUI脚本压测中,字符截取的问题汇总


    1,SAP-GUI的脚本和普通脚本有很大区别,在录制成功之后,脚本每一步的操作,都是格式化的,例如:

    	sapgui_set_text("合同编号", 
    		"20010494", 
    		ctxtRMF672, 
    		BEGIN_OPTIONAL, 
    			"AdditionalInfo=sapgui5018", 
    		END_OPTIONAL);
    

      这是一个在“合同编号” 中输入参数的一部操作,在这一操作中,通过LR自带的SAPgui的函数集中的set_text函数来控制输入

    合同编号:是这个text框的标题;

    20010494:是输入款的内容;

    ctxtRMF672:是这个输入框的属性id,在脚本的globals.h的头文件中:

    SAPgui的函数集大概如下,覆盖所有gui页面的操作:

     这支业务做成功之后,会返回一个提示页面信息:

    	sapgui_status_bar_get_text("paramStatusBarText", 
    		BEGIN_OPTIONAL, 
    			"Recorded status bar text: 合同 20012770已在公司代码 1000 中创建", 
    			"AdditionalInfo=sapgui5056", 
    		END_OPTIONAL);

    表名合同已经创建成功了,但是 string paramStatusBarText = “合同 20012770已在公司代码 1000 中创建”

    SAPgui的函数集范围内没有截取合同号20012770的函数,但是Lr是兼容C语言的,所以用c的字符串处理函数库,可以处理这个

        char str1[100];
        char str2[100];
        char * str3;
        strcpy(str1,lr_eval_string("{paramStatusBarText}")); //将guiBarText的text值赋值给str1
        lr_output_message("========str1返回信息为:%s,",str1);
        strncpy(str2,str1,13);                                // 截取str1的前13位赋值给str2,前13位=“合同 20012770”
        lr_output_message("========str2返回信息为:%s,",str4);    
        str3=(char *)strchr(str2,'2');                            //截取str2的从2开始至最后的字符,也就是20012770并转化成char类型赋值给str3
        lr_output_message("========str3返回信息为:%s,",str3);
        lr_convert_string_encoding( str3,LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"newstr3" );//这一步是转化成LR可以直接参数化使用的{newstr3}格式

    返回内容:

    Action.c(178): ========str1返回信息为:合同 20012970已在公司代码 1000 中创建,
    Action.c(181): ========str2返回信息为:合同 20012970,
    Action.c(183): ========str3返回信息为:20012970,  

    以上。

    在引入c的库函数过程中,变异一开始提示未定义错误:illegal statement termination

     具体原因是,在action里面,定义char之类的操作,应该放在最上面,把     lr_start_transaction("fnv1合同创建");移到char定义后面就行了。

  • 相关阅读:
    HDU 1285 确定比赛名次(拓扑排序模板)
    POJ 1679 The Unique MST(次小生成树)
    POJ 3026 Borg Maze(Prim+bfs求各点间距离)
    POJ 2349 Arctic Network(最小生成树+求第k大边)
    POJ 3169 Layout (spfa+差分约束)
    给定两个list A ,B,请用找出 A ,B中相同的元素,A ,B中不同的元素 ??
    什么是http协议??
    Python2中range 和xrange的区别??
    死锁 ??
    调度算法 ??
  • 原文地址:https://www.cnblogs.com/fy--/p/14182990.html
Copyright © 2020-2023  润新知