• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件性能測試工具LoadRunner驗證碼的解決方案

    發表于:2011-07-08來源:未知作者:領測軟件測試網采編點擊數: 標簽:loadrunner
    現在好多網站系統為了防范,惡意訪問系統,在登陸口進行限制,使用驗證碼登陸。 驗證碼是隨機產生的,并且驗證碼在頁面上顯示為圖片。此時想通過loadrunner直接獲取服務器發送過來的參數,肯定是不可行的。 在進行性能測試的時候,有兩種辦法進

      現在好多網站系統為了防范,惡意訪問系統,在登陸口進行限制,使用驗證碼登陸。

      驗證碼是隨機產生的,并且驗證碼在頁面上顯示為圖片。此時想通過loadrunner直接獲取服務器發送過來的參數,肯定是不可行的。

      在進行性能測試的時候,有兩種辦法進行此類系統的測試。

      1、將驗證碼暫時屏蔽,待完成性能測試后,在恢復。驗證碼屏蔽一定不會給性能測試帶來影響,這是肯定的。

      2、如果要測試系統是在用的系統,屏蔽驗證碼會帶來不安全因素,不能屏蔽驗證碼。遇到這個問題當然也有辦法解決--添加一個頁面將驗證碼的輸出到頁面,然后用loadrunner獲取到。

      JSP為例:

      驗證碼頁面(a.jsp)

      <%@ contenttype="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" page="">

    <%@ contenttype="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" page="">

      <%!

      Color getRandColor(int fc,int bc)

      {//給定范圍獲得隨機顏色

      Random random = new Random();

      if(fc>255) fc=255;

      if(bc>255) bc=255;

      int r=fc+random.nextInt(bc-fc);

      int g=fc+random.nextInt(bc-fc);

      int b=fc+random.nextInt(bc-fc);

      return new Color(r,g,b);

      }

      %>

      <%

      //設置頁面不緩存

      response.setHeader("Pragma","No-cache");

      response.setHeader("Cache-Control","no-cache");

      response.setDateHeader("Expires", 0);

      // 在內存中創建圖象

      int width=60, height=20;

      BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

      // 獲取圖形上下文

      Graphics g = image.getGraphics();

      //生成隨機類

      Random random = new Random();

      // 設定背景色

      g.setColor(getRandColor(200,250));

      g.fillRect(0, 0, width, height);

      //設定字體

      g.setFont(new Font("Times New Roman",Font.PLAIN,18));

      //畫邊框

      //g.setColor(new Color());

      //g.drawRect(0,0,width-1,height-1);

      // 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到

      g.setColor(getRandColor(160,200));

      for (int i=0;i<300;i++)

      {

      int x = random.nextInt(width);

      int y = random.nextInt(height);

      int xl = random.nextInt(12);

      int yl = random.nextInt(12);

      g.drawLine(x,y,x+xl,y+yl);

      }

      // 取隨機產生的認證碼(4位數字)

      String sRand="";

      for (int i=0;i<4;i++){

      String rand=String.valueOf(random.nextInt(10));

      sRand+=rand;

      // 將認證碼顯示到圖象中

      g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成

      g.drawString(rand,13*i+6,16);

      }

      // 將認證碼存入SESSION

      session.setAttribute("rand",sRand);

      System.out.println("---:"+sRand); //sRand就是隨機數 驗證碼 ,把它放到session中,然后合成到圖片中

      // 圖象生效

      g.dispose();

      //out.clear();

      request.setAttribute("gzip", "false");

      // 輸出圖象到頁面

      ImageIO.write(image, "JPEG", response.getOutputStream());

      out.clear();

      out = pageContext.pushBody();

      %>

      將驗證碼jsp頁面作為圖片放到b.jsp頁面中:

     

    <a href="c.jsp">c.jsp</a>

    <br>
    <br>
    <img src="a.jsp"/>

    <iframe. src="c.jsp"/>

    <4;i++){

      在iframe中放入的c.jsp頁面就是 獲取驗證碼的頁面。

      這兒加了一個c.jsp 頁面鏈接,主要是用在loadrunner錄制腳本的時候,a.jsp 和c.jsp在B頁面上加載的順序不是有序的,因而C.JSP可能獲取到的驗證碼為NULL。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>