乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      LoadRunner腳本編寫之三(事務(wù)函數(shù))

       kinghill 2012-08-07

       

        關(guān)于腳本的這塊,前兩篇都在講C語言,其實(shí),要整理點(diǎn)實(shí)用的東西挺難,在應(yīng)用中多對錄制的腳本分析,但對于新手學(xué)腳本確實(shí)無從下手。

      先貼一個腳本:

      完整代碼:

      View Code

      重點(diǎn)代碼部分:

      復(fù)制代碼
      Action()
      {
      
      
          web_url("webhp", 
              "URL=http://www./webhp?hl=zh-CN&sourceid=cnhp", 
              "Resource=0", 
            .....
          lr_start_transaction("登陸");    //設(shè)置事務(wù)開始
      
          web_submit_data("ServiceLoginAuth", 
              "Action=https://accounts.google.com/ServiceLoginAuth", 
              "Method=POST",       
         ........
      web_file("web_find","defnngj@gmail.com",LAST); //設(shè)置檢查點(diǎn) lr_end_transaction("登陸",LR_AUTO); //設(shè)置事務(wù)結(jié)束 return 0; }
      復(fù)制代碼

       

      上面的一段代碼是我錄制的一個google登錄的過程,詳細(xì)過程描述:

      1、進(jìn)入google首頁

      2、點(diǎn)擊右上角的登錄鏈接,跳轉(zhuǎn)到登錄頁面

      3、設(shè)置登錄事務(wù)開始,輸入用戶名密碼,點(diǎn)擊登錄

      4、登錄成功后跳轉(zhuǎn)后google 首頁,右上角出現(xiàn)登錄的用戶名,設(shè)置事務(wù)結(jié)束。

       

      檢查點(diǎn)

        在上面的操作中,我設(shè)置了一個檢查點(diǎn),web_fiind  ,判斷后我是否登錄成功一個重點(diǎn)的標(biāo)志是在google首頁右上角是否出現(xiàn)我的用戶名。所以,我根據(jù)這個特點(diǎn)設(shè)置檢查點(diǎn),來檢查登錄是否成功。設(shè)置檢查點(diǎn)的函數(shù)有三個,

      web_find()函數(shù): 在頁面中查找相應(yīng)內(nèi)容

      web_reg_find()函數(shù): 在緩存中查打相應(yīng)的內(nèi)容

      web_image_check()函數(shù):在頁面中查找具體圖片。

        他們的具體用法,你們可以在腳本的編寫中,光標(biāo)定位在函數(shù)中,按F1 查看幫助文檔或參考其它文檔。

       

      關(guān)于腳本中的事務(wù)

       

        我們在一個腳本中可能要做很多操作,我們?yōu)榱朔智迥_本中某一段代碼具體是做什么,所以,在執(zhí)行某個操作的前后需要添加事務(wù),用來標(biāo)志事務(wù)的開始與結(jié)束,這樣可以使腳本更清晰。當(dāng)然,對于不同的事務(wù)需要分開錄制。比如,某電子商務(wù)網(wǎng)站的瀏覽商品與交易。他們的比例是不同的,對于比較復(fù)雜的場景,是多個事務(wù)按不同的比例并行的。設(shè)置80%的用戶瀏覽商品,20%的用戶進(jìn)行交易。

        當(dāng)然,事務(wù)與事務(wù)之間是會有依賴關(guān)系的。如果我們把訪問首頁定為一個事務(wù),登錄定為一個事務(wù),瀏覽商品定為一個事務(wù),交易定為一個事務(wù)。那么我們要想錄制(編寫)交易的事務(wù),那么前面三個事務(wù)是先覺條件。所以,我們知道錄制一個腳本的目的是哪個操作,然后在其前后添加事務(wù)標(biāo)識。

            對80%的用戶瀏覽商品,20%用戶交易,交易的前提是先瀏覽一個商品,也就是所有用戶(100%)都瀏覽了商品,只有20%的用戶去交易。這樣是合乎邏輯的。

       

      事務(wù)函數(shù)                                                                         

       

        在上面的腳本中我們用到了lr_start_transaction()函數(shù)和 lr_end_transaction()函數(shù)來標(biāo)識一個事務(wù)的開始與結(jié)束,除些之外,loadrunner還提供了許多與事務(wù)相關(guān)的函數(shù),這里介紹幾個常用的。

       

      1、lr_set_transaction_instance_status 用于設(shè)置事務(wù)的狀態(tài),事務(wù)的狀態(tài)包括:LR_PASS、 LR_FAIL 、  LR_AUTO 、  LR_STOP  ??梢栽谀_本中根據(jù)條件設(shè)置事務(wù)的狀態(tài),例如,根據(jù)檢查點(diǎn)返回的結(jié)果來設(shè)置事務(wù)為通過還是失敗。

      if(event == GENERAL_ERROR)
              lr_set_transaction_instance_status(LR_FAIL);
          lr_end_transaction("登陸",LR_AUTO);

       

      2、 lr_fail_trans_with_errorlr_set_transaction_instance_status 類似,都可以用于設(shè)置事務(wù)的狀態(tài),區(qū)別在于lr_fail_trans_with_error除了可以設(shè)置的狀態(tài),還可以輸出錯誤日志信息。

      if(status != SUCCESS)
              lr_fail_trans_with_error("an error has occurred:%s",my_get_error_string(status));
          lr_end_transaction("登陸成功",LR_AUTO); 

       

      3、lr_get_transaction_status前兩個函數(shù)的作用相反,用于獲取事務(wù)的狀態(tài)。

      if (lr_get_transaction_status() == LR_FAIL)
          {
              //由于web_url請求失敗了,所以沒有必要繼續(xù)執(zhí)行下去,因些設(shè)置事務(wù)狀態(tài)為FAIL
              lr_end_transaction("登陸失敗",LR_FAIL);
              return;
          }

       

      4、lr_get_transaction_duration 用于獲取事務(wù)所消耗的時(shí)間。這個就比較有意思了。

        我們登錄百度首頁,插入一個事務(wù),然后訪問百度注冊頁面。下面計(jì)算訪問注冊頁面的時(shí)間。

      完整腳本:

      View Code

      重點(diǎn)代碼部分:

      復(fù)制代碼
      Action()
      {
          double trans_time;  //定義變量
      
          web_url("www.baidu.com", 
              "URL=http://www.baidu.com/", 
             .....
      
          lr_start_transaction("訪問注冊頁");  //定義事務(wù)開始
      
          web_link("???", 
              "Text=???", 
              "Ordinal=2", 
              "Snapshot=t15.inf", 
           ......
      
          trans_time=lr_get_transaction_wasted_time("訪問注冊頁");  //獲得消耗時(shí)間
      
          if (trans_time) {
              lr_output_message("The duration up to the submit is %f seconds",trans_time);  //打印數(shù)輸出消耗實(shí)時(shí)間
          }else{
              lr_output_message("the duration cannot be determined. ");
          }
      
          lr_end_transaction("訪問注冊頁",LR_AUTO);  //事務(wù)結(jié)束
      
          return 0;
      }
      復(fù)制代碼

      運(yùn)行結(jié)果:

      .......
      Action.c(39): The duration up to the submit is 0.029588 seconds
      Action.c(45): Notify: Transaction "訪問注冊頁" ended with "Pass" status (Duration: 5.0300 Wasted Time: 0.0296).
      Ending action Action.
      Ending iteration 1.

      39:持續(xù)時(shí)間長達(dá)0.029588秒的提交

      45:通知:交易”訪問注冊頁”結(jié)束,“通過”狀態(tài)(持續(xù)時(shí)間:5.0300 浪費(fèi)時(shí)間:0.0296)。

       

        從上面的結(jié)果中發(fā)現(xiàn),我們設(shè)置lr_get_transaction_wasted_time函數(shù)的時(shí)間0.029588 與事務(wù)結(jié)束浪費(fèi)的時(shí)間 0.0296 非常接近。 這是因?yàn)槲野?/span> lr_get_transaction_wasted_time函數(shù)插入在了事務(wù)結(jié)果的前面,其實(shí),我們可以將lr_get_transaction_wasted_time插入在事務(wù)執(zhí)行過程的任意位置來計(jì)算消耗時(shí)間。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多