<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

        <mark id="rxdll"><dfn id="rxdll"></dfn></mark>
        • 軟件測試技術
        • 軟件測試博客
        • 軟件測試視頻
        • 開源軟件測試技術
        • 軟件測試論壇
        • 軟件測試沙龍
        • 軟件測試資料下載
        • 軟件測試雜志
        • 軟件測試人才招聘
          暫時沒有公告

        字號: | 推薦給好友 上一篇 | 下一篇

        使用Rational Robot測試含有數據關聯的Web應用

        發布: 2007-9-24 15:44 | 作者: 蔡俊杰 | 來源: IBM | 查看: 215次 | 進入軟件測試論壇討論

        領測軟件測試網  
        Rational Robot可被用來對包含數據關聯的復雜Web應用進行性能測試。這里所謂數據關聯,是指Web頁面之間存在的數據相關性,例如一個動態的頁面URL或者個別輸入參數需要從前一個頁面中抽取出來,有時候還需要在抽取得到的結果的基礎上做進一步處理。這就使得測試開發員通常必須對Robot自動生成的VU腳本進行修改從而保證其能正確運行。簡單情形下,VU語言庫提供的一些庫函數可以支持常見的抽取需求。但在很多更復雜的情形中,往往需要通過更多的編程來處理頁面之間的數據關聯,包括進行模式匹配、模擬Java Script或者Java Applet的行為等。本文將介紹處理最常見的幾種數據關聯的方法,并提供了一系列很有用的功能函數,幫助測試開發員編寫更具靈活性的VU腳本。

        簡介
        隨著越來越多的企業應用被移植到Web上,Web應用正變得日益復雜。它們被用來實現復雜的業務流程例如交易甚至工作流。一個業務流程通常包含若干步驟。這些步驟間自然地需要共享某些數據以完成一次連續的“計算”。例如,某一個步驟的輸出可能是下一個步驟所需的輸入。在一個典型的Web應用實現中,業務流程的每個步驟對應為一個HTML頁面,因而最終用戶將與一系列連續的頁面依次交互以完成一個完整的業務流程。由于Web的無狀態特性,這些頁面中通常需要存儲一些信息來實現它們之間所需的數據共享,例如下一個頁面的URL以及其他可能的輸入參數等。這些信息常常是由
        服務器動態生成,因此每次的值都可能不同。但是,當Robot錄制一個HTTP會話時,它只能記錄這些數據在這個會話中的一個快照。盡管Robot采用了一種稱為“動態數據關聯”(Dynamic data correlation)的技術使得它能夠關聯部分動態的值,但還是無法找出所有需要關聯的值并據此產生具備完善功能和足夠靈活性的VU腳本。即使Robot可以簡單地認為所有的數據都是動態的,如何在可用的HTML頁面中抽取甚至構造這些數據的值則是一個更加復雜和困難的問題,因為Robot對這些數據后隱含的邏輯一無所知。因此,在Robot不能產生令人滿意的VU腳本時,就需要手工修改進行完善。

        下面將首先對Web應用中的數據關聯作更進一步的剖析,接著介紹如何使用Robot的“動態數據關聯”技術,然后詳細討論當Robot不能產生滿意的腳本時一些可能的解決方案,包括動態數據值的定制抽取和客戶端數據構造的模擬等。

        Web應用中數據關聯的分析
        在Web應用中,當一個特定的HTML頁面的URL或者個別輸入參數的值是動態產生因而必須從先于它返回的頁面包含的數據中抽取或者構造出來時,就發生了數據關聯。動態輸入參數的一個很好的例子就是當前很普遍的“Session ID”,它由服務器生成并返回給用戶的瀏覽器,在訪問下一個頁面時這個ID需要被發送回去以獲取存儲在服務器端的會話上下文。輸入參數通常以四種方式提交:HTTP頭參數、Cookie、URL參數和FORM參數。由于URL參數可被認為是URL的一部分,因此可以認為有四種可能發生關聯的動態數據:HTTP頭參數、Cookie、URL、FORM參數。在Robot的VU語言中,一個HTTP請求是通過調用庫函數“http_request”發出的,列表1是給出了一個典型的
        用例。請注意列表1中各粗體部分,它們分別代表了四種可能發生關聯的動態數據的形式中的一種。

        列表1. 函數http_request的典型用例
        
        
        http_request ["t3079"] 
        
           "POST /pkmslogin.form HTTP/1.1\r\n"
        
           "Accept: image/gif, image/x-xbitmap, image/jpeg,
        image/pjpeg, applicat" "ion/vnd.ms-excel, application/vnd.ms-powerpoint,
        application/msword, ap" "plication/x-shockwave-flash, */*\r\n" "Referer: " SgenURI_009 "\r\n" /* "Referer: http://gclgtod.cn.ibm.com/wps/myportal?
        lang=en_US" */ "Accept-Language: en-us,zh-cn;q=0.5\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "Accept-Encoding: gzip, deflate\r\n" "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
        Windows NT 5.1)\r\n" "Host: gclgtod.cn.ibm.com\r\n" "Content-Length: 55\r\n" "Connection: Keep-Alive\r\n" "Cache-Control: no-cache\r\n" "Cookie: w3sauid=d002000000001363710753854620000923482.0009B551AB;
        PBC_N LSP" "=en_US; msp=a
        lreadyOffered;
        JSESSIONID=0000fRBw1aq9nolhnP9ZMKhaw2B:- 1; " "PD-H-SESSION-ID=4_oxjUZgfvY4ToFOhh9cFnnAg54o4sndHOA6rRkqpxbT2NAAAA\r" "\n" "\r\n" "username=admin

        延伸閱讀

        文章來源于領測軟件測試網 http://www.k11sc111.com/

        TAG: rational robot


        關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
        版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
        北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
        技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

        軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>