发布新日志

  • loadruner vugen 回放返回 :Fatal Error -26499

    2016-08-06 21:27:29

    Loadrunner vugen回放的时候返回下面的错误码:
    Fatal Error -26499: Internal Error - mptVUserVars->_hDfePE is unexpectedly NOT NULL after xfeLrwSrvNetTaskItemPrimaryCreate. Is it a concurrent group?

    原因是我录制的脚本中,报错地方前面有一对
     web_concurrent_start 
    web_concurrent_end 
    函数:
    函数可以
    // 标记并发组的开始。组中的所有函数均并发执行。组的结束由函数
    // web_concurrent_end 标记。在并发组中可以包含操作函数和几个服务函数。


    解决上面问题的办法就是:把这一对并发组函数注释掉
  • Vugen运行的时候提示“服务器正在运行中”

    2016-03-17 16:23:24

    Vugen运行的时候弹出提示框“服务器正在运行中”

    百度了下找到的答案是,在进程中找到“ThumbProcess.exe”进程,关闭,再重新运行就好了。
  • appium默认60秒关闭应用的问题

    2016-03-09 16:04:54

    问题:appium默认启动一个应用的session过期时间是60秒到时间会自动停了刚启动的应用,工作台打印:info: [debug] We shut down because no new commands came in的日志
         
    分析:--command-timeout  60 The default command timeout for the server to use for all sessions (in seconds and should be less than 2147483). Will still be overridden by newCommandTimeout cap
    意思是默认60秒过期,超过60秒就会自动


    解决办法:
    从appium工作台最前面找到,启动命令:
    > Launching Appium server with command: C:\Program Files (x86)\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --avd Nexus7 --platform-name Android --platform-version 19 --automation-name Appium --device-name "Android Emulator" --log-no-color

    在cmd命令行,对应目录加时间参数即可:--command-timeout 600
    在目录:C:\Program Files (x86)\Appium>
    执行
    node.exe node_modules\appium\lib\server\main.js --
    address 127.0.0.1 --port 4723 --avd Android4.4.2 --device-ready-timeout 70 --pla
    tform-name Android --platform-version 19 --automation-name Appium --avd Nexus7 -
    -device-name "Android Emulator" --log-no-color --command-timeout 600

    启动日志中就能看到:
    info: [debug] Non-default server args: {"address":"127.0.0.1","logNoColors":true
    ,"avd":"Nexus7","androidDeviceReadyTimeout":"70","deviceName":"Android Emulator"
    ,"platformName":"Android","platformVersion":"19","automationName":"Appium","defa
    ultCommandTimeout":600}
    时间变成600秒了
  • LR11使用代理录制手机脚本

    2016-02-19 14:44:29

    LR11使用代理录制手机APP脚本,很常用,不过我看了好久都没弄成功,今天终于成功了,记录一下。

    资源配置:
    操作系统:win7;软件:fiddler(抓包工具,用来做http代理用);Loadrunner11;手机一部(我用的是华为荣耀6plus)

    步骤:
    1、关闭了防火墙,360等东西(这个是为了以防万一,我提前关闭的,下面的操作不知道跟这个有没关系);
    2、设置fiddler端口号是8888;启动fiddler,保证fiddler能抓到电脑上浏览器的http的包就行了;
    3、启动LR的vugen
    4、新建web(http/html)协议的脚本;
    5、Start Recording设置:
       Application type:Win32 Applications
       Program to record:D:\Program Files (x86)\HP\LoadRunner\bin\wplus_init_wsock.exe
       Program arguments:空
       Working directory:D:\Program Files (x86)\HP\LoadRunner\bin(其实就是wplus_init_wsock.exe的所在目录名称);
       Record into Action:Action(这是默认的)
    6、Start Recording-点击Options...准备配代理
       Recording Options--Network-Port Mapping:
          Capture level:Socket level data
          下面就是代理的配置了:(点击New Entry进入Server Entry页面配置)
              Target Server:192.168.1.107(本机IP)
              Port:8888(fiddler上的端口)
              勾选:Allow forwarding to target server from local port 端口号写:9988(这个端口号是手机链接代理使用端口号,我就是一直没弄明白这个端口号的作用浪费了2天时间)
    在Network:Port Mapping页面看到新增的代理,就说明代理配置成功了。
    7、点击Start Recording窗口上的”OK“开始录制吧。
    8、配置手机wifi:
        代理:手动
        代理服务器主机名:192.168.1.107(lr所在电脑IP)
        代理服务器端口:9988(lr中配的那个端口号)
       连接wifi
    9、在手机上启动要录制的APP,进行操作

          
  • 用Jmeter录制手机app脚本

    2016-02-18 16:14:25

    今天看到一个51的朋友发的使用Jmeter录制手机APP的介绍,实践了一下,在这里记录一下,以防忘记了。
    准备:
    电脑装了Jmeter;手机;公司的wifi;
    操作步骤:
    1、启动Jmeter
    2、“测试计划”中添加“线程组”;
    3、“工作台”中添加“HTTP代理服务器”;
    4、配置代理服务器:Global Settings下面的端口配置:9988,HTTPS Domains配置:http://192.168.1.107
    5、HTTP代理服务器--点击“启动”按钮,启动HTTP代理服务器;
    6、手机上配置wifi-“修改网络”设置如下(后面的附图里也有这个设置)
       “代理”---选择“手动”;
       “代理服务器主机名”---“192.168.1.107
       “代理服务器端口”----“9988
    7、可能IE也要设置一下:(这个我不确定,只是刚才关了jmeter的时候不能上网了来IE上去掉这个代理才行)
       IE选项--连接--局域网设置--为LAN使用代理服务器前选中--高级(http:127.0.0.1;端口:9988)
    8、手机连接刚才配置的wifi;(一般这个时候连成功,线程组下面就能看到抓到很多请求了)
    9、启动手机上需要测试的APP,进行业务操作;(这个时候可以看到线程组抓到**P上发出的请求了)
    10、业务操作完毕,立即关闭jemter上的“HTTP代理服务器”(要不一直抓没用的包到线程组了);
    11、在“线程组”删除无关的请求;
    12、保存jmx脚本;
    13、回放。

    后面就是jmeter的参数化之类的操作了
  • loadrunner Capture level设置原理

    2016-01-06 16:48:45

    首先写一下LR帮助文档中的解释:
    The level of data to capture (relevant only for HTTP based protocols):
    • Socket level data. Capture data using trapping on the socket level only. Port mappings apply in this case (default).
    • WinINet level data. Capture data using hooks on the WinINet.dll API used by certain HTTP applications. The most common application that uses these hooks is Internet Explorer. Port mappings are not relevant for this level.
    • Socket level and WinINet level data. Captures data using both mechanisms. WinINet level sends information for applications that use WinINet.dll. Socket level sends data only if it determines that it did not originate from WinINet.dll. Port mapping applies to data that did not originate from WinINet.dll.

    • 我自己理解是这么的:
      socket level data是使用socket协议,直接监听端口抓取数据。                                                   winINet level data是启用WinInet.dll在协议层抓取数据,我看了下“勾子”原理,好像是另外起一个应用来完成抓取的工作,不用监听端口;(http://www.cnblogs.com/cryinstall/archive/2011/08/30/2280826.html这个URL介绍了勾子技术)    socket level and winINet level data是使用了上面2中技术;当有端口的时候就使用socket抓取当没有明确的端口的时候就是用winINet抓取。                                                                                                                                                                                                                                                                                                                             其实还有一个地方Network-level server address mappings for:z还有当选中socket抓取的时候才能选择下面的协议,我估计就是因为下面的协议都是有端口的。而使用WinINet的时候这个就不能选了,因为这种抓取技术跟端口没关系了。                                                                                                                                                                                                             所以我们平常抓取http协议的时候只要选socket就好了,如果碰到https的时候再选择WinINet.
  • 安装的seleniumIDE在firefox工具栏看不到图标怎么办

    2016-01-06 11:21:07

    出现上面的原因是:安装的seleniumIDE在firefox中被禁用了

    解决办法:(重启开启被禁用的组件即可),操作步骤:
    1、在firefox新标签中输入about:config;
    2、搜索“xpinstall.signatures.required”,右键,点击“切换”
    看到“值”变成了“false”
    3、重启firefox
    这下就能看到“工具---seleniumIDE”了

    firefox自带的帮助信息是这么写的:

    强制禁用这个首选项(高级用户): 你可以在 Firefox 配置编辑页面about:config 页面)把 xpinstall.signatures.required 首选项设为 false 来强制禁用附加组件验证的功能。我们不会为手动在配置编辑页面做出的任何修改提供援助,因此请自担风险。



  • loadrunner转码函数的学习

    2016-01-05 16:37:13

    Action()
    {    //转码测试
    /*
        int lr_convert_string_encoding( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName); 
        sourceString  The string to convert  需要转换的字符
        fromEncoding  The encoding of the sourceString  原来字符的编码
        toEncoding  The encoding to convert of the string saved in parameter paramName  需要转换成的编码  
        paramName  The name of the parameter in which the destination string will be saved   保存转码后的字符的变量名称

        */
         lr_start_transaction("convert");

    lr_convert_string_encoding(lr_eval_string("智能手机"),"gb2312","utf-8","a1");//把智能手机编码从gb2312转成utf-8,放在a1中,在函数中使用的时候直接{a1}使用就可以了

    lr_convert_string_encoding(lr_eval_string("{a1}"),"utf-8","gb2312","bb");//把刚才转码的再转一次还原,给下面的语句来打印它

    lr_output_message(lr_eval_string("{bb}"));

    lr_end_transaction("convert",LR_AUTO);

    return 0;
    }
Open Toolbar