• <menu id="w2i4a"></menu>
  • logo LoadRunner 系列教程
    文檔首頁>>LoadRunner 系列教程>>LoadRunner常見錯(cuò)誤收集及解決方案

    LoadRunner常見錯(cuò)誤收集及解決方案


    下載最新版loadrunner試用>>

    一. This Vuser already started a transaction with the same name, and has not yet processed the corresponding lr_end_transaction statement.

      在做性能測(cè)試的時(shí)候,有時(shí)候會(huì)遇到下面的錯(cuò)誤:This Vuser already started a transaction with the same name, and has not yet processed the corresponding lr_end_transaction statement.
      解釋:就是腳本中有一個(gè)事物開始了,但是沒有結(jié)束事物,此時(shí)loadrunner就會(huì)報(bào)錯(cuò),因?yàn)殚_始和結(jié)束是一一對(duì)應(yīng)的,誰也不能把它們拆開,拆開了就會(huì)報(bào)錯(cuò)。
      異常再現(xiàn):
      下列代碼中,如果業(yè)務(wù)方法報(bào)了異常(Throw Exception),那么下面的if判斷的代碼不會(huì)被執(zhí)行,而直接跳到catch子句里,那么已經(jīng)開始的業(yè)務(wù)"searchItemList_man"就沒有被結(jié)束,當(dāng)你再次開始業(yè)務(wù)時(shí),就會(huì)報(bào)錯(cuò)~
    1 public int action() throws Throwable {
    2
    3         misc = generateManItemSearchCondition();
    4                 lr.start_transaction("searchItemList_man");
    5         try {
    6             //業(yè)務(wù)方法
    7             items = searchService.searchItemList(misc);
    8             if (items.isSuccess()) {
    9                 lr.end_transaction("searchItemList_man",lr.PASS);
    10
    11             } else {
    12                 lr.end_transaction("searchItemList_man",lr.FAIL);
    13             }
    14             orderMap.clear();
    15             productIdSet.clear();
    16             productStatusList.clear();
    17         } catch (Exception e) {
    18
    19
    20             e.printStackTrace();
    21         }
    22
    23
    24         misc = null;
    25         items = null;
    26         return 0;
    27     }//end of action
     解決辦法:  在catch字句里加上一個(gè) 事務(wù)結(jié)束代碼,修改后的catch段代碼如下:
    catch (Exception e) {
    // TODO Auto-generated catch block
    lr.end_transaction("searchItemList_man",lr.FAIL);
    e.printStackTrace();
    }
     
    二.Function two_way_comm_post_message / two_way_comm_post_message_ex failed錯(cuò)誤
    LoadRunner常見錯(cuò)誤收集及解決方案
      在Controller里運(yùn)行腳本,運(yùn)行一段時(shí)間以后出現(xiàn)如下error messages。
      1. Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post_message / two_way_comm_post_message_ex failed.
      2. Code - 29739 Error: Service client with id=1 failed to post a message, reason - communication error.
      3. Code - 16895 Error: Failed to post xdr buffers data array by post_ex.
      4. Code - 10343 Error: Communication error: Cannot send the message since reached the shared memory buffer max size.
      問題誘因1:
      共享內(nèi)存緩存溢出,造成Controller和Load Generator之間通訊出現(xiàn)問題。
      解決方案:
      修改兩個(gè)配置文件。
      1. $installation folder$\dat\channel_configure.dat
      2. $installation folder$\launch_service\dat\channel_configure.dat
      在這兩個(gè)文件中的[general]部分下添加如下配置。
      shared_memory_max_size=100 (修改共享內(nèi)存為100MB,默認(rèn)是50MB)
      重新啟動(dòng)Controller,問題解決。
      問題誘因2
      打開 controller中的 diagnostics菜單,點(diǎn)掉復(fù)選框.. 步驟如下圖
      1.
    LoadRunner常見錯(cuò)誤收集及解決方案
      2. 點(diǎn)掉 Enable the following diagnostics
    LoadRunner常見錯(cuò)誤收集及解決方案
      3. 整理了一下 這個(gè)功能是干么滴:
      當(dāng)場(chǎng)景中打開 Diagnostics 菜單下 Web Page Diagnostics 功能后, 才能得到網(wǎng)頁分析組圖。
      通過該圖, 可以對(duì)事務(wù)的組成進(jìn)行抽絲剝繭的分析, 得到組成這個(gè)頁面的每一個(gè)請(qǐng)求的時(shí)間分析, 進(jìn) 一步了解響應(yīng)時(shí)間中有關(guān)網(wǎng)絡(luò)和服務(wù)器處理時(shí)間的分配關(guān)系。
      可以實(shí)現(xiàn)對(duì)網(wǎng)站的前端性能分析, 明確系統(tǒng)響應(yīng)時(shí)間較長是由服務(wù)器端處理能力不足還是客戶端鏈接 到服務(wù)器的網(wǎng)絡(luò)消耗導(dǎo)致的。
      三. Fatal Error -26000: Not enough memory (12320 bytes) for "new buffer in LrwSrvNetTaskIt 問題解決及l(fā)r腳本心得
      現(xiàn)象: 用loadrunner跑場(chǎng)景的時(shí)候報(bào)錯(cuò):
      Action.c(28): Fatal Error -26000: Not enough memory (12320 bytes) for "new buffer in LrwSrvNetTaskItem::AllocSrvNetBuf". Aborting 的錯(cuò)誤,
      同時(shí)任務(wù)管理器里mmdrv.exe 內(nèi)存占用一直增大,最終mmdrv.exe崩潰. 網(wǎng)上有人認(rèn)為是 lr的 emulation browser設(shè)置問題,最后發(fā)現(xiàn)系腳本問題,原腳本聲明了好幾個(gè)變量,而且都未使用:
    1 Action()
    2 {
    3
    4          //返回的字符串
    5     char resp_txt[200] = {0};
    6     //寫入流的數(shù)據(jù)
    7     long myfile;
    8     //當(dāng)前日期時(shí)間
    9     long now;
    10    .....
    11    ......
    12
    13     return 0;
    14 }
      解決方法及總結(jié):
      后將此三個(gè)變量注釋之后問題解決.
      結(jié)論:LR的腳本要注意內(nèi)存的使用,盡量減少變量聲明,對(duì)于char類型的變量要及時(shí)用free:即:
      1  char * a;
      2  free (a);
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();