zoukankan      html  css  js  c++  java
  • WEB测试—功能测试

    • 1. 链接测试

           1.1 测试点:

    • 是否添加链接
    • 链接页面是否存在
    • 链接页面与需求是否一致:页面的正确性、打开方式 等      

           一般,该链接测试在集成测试阶段(页面均开发完成)的时候进行

           1.2 测试工具:

    • Xenu Link Sleuth 免费 绿色免安装软件

    • HTML Link Validator 共享(30天试用)

           1.3 延伸代码:

        测试工具在实际应用时,其实是挺受限的。有时候,需要自己写点小代码去验证,主要用于系统回归。

        比如:

        

     1 //        封装判断web链接返回状态是否为2开头的
     2      public static void ReadUrl(String surl){  
     3         try {
     4                    URL url = new URL(surl);
     5                    URLConnection rulConnection   = url.openConnection();
     6                    HttpURLConnection httpUrlConnection  =  (HttpURLConnection) rulConnection;
     7                    httpUrlConnection.setConnectTimeout(300000);
     8                    httpUrlConnection.setReadTimeout(300000);
     9                    httpUrlConnection.connect();
    10                    String code = new Integer(httpUrlConnection.getResponseCode()).toString();
    11                    String message = httpUrlConnection.getResponseMessage();
    12 //                  System.out.println("getResponseCode code ="+ code);
    13 //                  System.out.println("getResponseMessage message ="+ message);
    14                    if(!code.startsWith("2")){
    15                         throw new Exception(surl+"ResponseCode is not begin with 2,code="+code);
    16                    }
    17 //                   打印链接返回状态码
    18 //                   System.out.println(getDateTime()+"连接"+surl+"正常");
    19               }catch(Exception ex){
    20 //                   System.out.println(surl+ex.getMessage());
    21               }
    22      }
    23      
    24 //     封装模拟发起post请求一
    25      public static String sendPost(String strUrl, String content, String charset)  {
    26          URL httpurl = null;
    27          HttpURLConnection httpConn = null;
    28          String returnStr = "";
    29          PrintWriter outs = null;
    30           try {
    31               httpurl = new URL(strUrl);
    32               httpConn = (HttpURLConnection) httpurl.openConnection();
    33               httpConn.setRequestMethod( "POST"); // 默认是post
    34                // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 http正文内,因此需要设为true, 默认情况下是false;  
    35               httpConn.setDoOutput( true);
    36                // 设置是否从httpUrlConnection读入,默认情况下是true;
    37               httpConn.setDoInput( true);
    38               httpConn.setRequestProperty( "Content-Type", "text/xml");
    39               outs = new PrintWriter(httpConn.getOutputStream());
    40               outs.print(content);
    41               outs.flush();
    42               outs.close();
    43                // 字节流 读取全部内容 包括换行符
    44               returnStr = inputStreamToString(httpConn.getInputStream(), charset);
    45          } catch (Exception e) {
    46                logger.error( "执行HTTP Post请求" + strUrl + "时,发生异常!" , e);
    47                if(outs != null){
    48                    outs.close();
    49                    outs = null;
    50               }
    51                return returnStr;
    52          } finally {
    53                if (httpConn != null)
    54                    httpConn.disconnect();
    55                if(outs != null){
    56                    outs.close();
    57                    outs = null;
    58               }
    59          }
    60           return returnStr;
    61    }
    62 
    63 //     封装读取请求响应的内容
    64    public static String inputStreamToString(InputStream in,String encoding) throws Exception{ 
    65       ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 
    66       byte[] data = new byte[1024]; 
    67       int count = -1; 
    68       while((count = in.read(data,0, 1024)) != -1)
    69           outStream.write(data, 0, count);
    70       in.close();
    71       data = null; 
    72       return new String(outStream.toByteArray(),encoding); 
    73   } 
    View Code
     1   void((function() {
     2 var cars=new Array();//定义了数组,最终返回的是列表
     3 
     4 cars=document.getElementsByTagName("a");//获取对应对象
     5 /*cars=$("a")*/
     6 for(var i =0;i<cars.length;i++){  
     7    var href_name;  
     8    item_name = cars[i].href;  //获取对应url地址
     9   if(item_name.indexOf("***")!=-1){
    10    console.info(item_name);
    11 }
    12   }  
    13 
    14   })())
    15 var xmlhttp;
    16 function loadXMLDoc(url)
    17 {
    18 xmlhttp=null;
    19 if (window.XMLHttpRequest)
    20   {// code for Firefox, Mozilla, IE7, etc.
    21   xmlhttp=new XMLHttpRequest();
    22   }
    23 else if (window.ActiveXObject)
    24   {// code for IE6, IE5
    25   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    26   }
    27 if (xmlhttp!=null)
    28   {
    29   xmlhttp.onreadystatechange=state_Change;
    30   xmlhttp.open("GET",url,true);
    31   xmlhttp.send(null);
    32   }
    33 else
    34   {
    35   alert("Your browser does not support XMLHTTP.");
    36   }
    37 }
    38 
    39 function state_Change()
    40 {
    41 if (xmlhttp.readyState==4)
    42   {// 4 = "loaded"
    43   if (xmlhttp.status==200)
    44     {// 200 = "OK"
    45     document.getElementById('p1').innerHTML=xmlhttp.getAllResponseHeaders();
    46     }
    47   else
    48     {
    49     alert("Problem retrieving data:" + xmlhttp.statusText);
    50     }
    51   }
    52 }
    View Code

    • 2. 表单测试

            2.1 测试点:

    • 默认值
    • 必输项
    •  输入验证:输入框的特殊文本控制(比如电话、邮箱、url地址等)、长字符、特殊字符、正负数、小数位数等。
    • 上传测试:大小、格式类型等
    •  表单操作:增删改查,完整性、正确性。

           一般,配合下面的数据校验等方面一起测试的,故这里的测试点可能不全。

           2.2  测试工具:

          WinRunner(QTP)等

          先手动检查,后可以用该工具回归了。

          2.3 延伸代码:

        可以写个简单的js实现

        

     1 void((function(){
     2   var select = document.getElementsByTagName('select');
     3   for(var jj=0;jj<select.length;jj++){
     4       selectedNode = select[jj].options;
     5       /*取出select的所有选项值*/
     6       for (var i=0;i<selectedNode.length;i++){
     7           selectoption=selectedNode[i].innerHTML;
     8          // console.info(selectoption);  
     9          
    10       }
    11       /*随机赋值*/
    12        /*随机赋值*/
    13       $(select[jj]).get(0).selectedIndex=1; 
    14       var checkText= $(select[jj]).find("option:selected").text();
    15       console.info(checkText);
    16       $(select[jj]).click;
    17              
    18   }
    19 })())
    20 
    21 //一般的文本框任意赋值
    22 void((function() {
    23     var i = document.getElementsByTagName('input');
    24     for (var jj = 1; jj <= i.length-4; jj++) {
    25         i[jj].value = "cs";
    26     }
    27 })())
    View Code

        也可以使用代码等,比如selenium等。


    • 3. 数据校验

          3.1 测试点:

    •  配合2的测试,验证表单数据的正确及完整性:单页面、单系统或多系统。
    •  数据的增删改查:比如代码任务的计算等

          该方面的测试,与每个系统特异性有关,故不全。

          3.2 测试工具:同上

          3.3 代码延伸


    • 4. cookies测试

          4.1 测试点:

    •  是否使用cookies:根据需求设计,确定是否使用了cookies。比如说需求需要将选择的类目保存到cookie,关闭浏览器然后再试;或者某些不能使用cookie等。
    •  cookies其他使用需求验证:比如使用 cookie 来统计次数,需要验证次数累计正确。

          该方面的测试,与每个系统特异性有关,故不全。

          4.2 测试工具:

          IECookiesView v1.50

           Cookies Manager v1.1

         


    • 5. 数据库测试

           5.1 测试点

         我目前测试接触到的数据是oracle、mysql。

         主要测试数据库的经历是oracle,哎呀,但是换了工作后,好几年不碰了,下次整理了。

    •  sql语句的性能及优化
    •  

           5.2 测试工具

         使用及测试的工具可能是1个,可能是多个联合

        TOAD for Oracle(Mysql)


    • 6. 应用程序特定的功能需求

        深刻理解需求说明文档

        比如

    •  与第三平台之间的交互等
    •  session测试:同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功等。

    • 7. 控件等技术应用测试

           7.1 测试点

    • 是否满足使用需求
    • 界面显示是否正常
    • 控件的正确性:多种操作后是否正常等

          

  • 相关阅读:
    hihocoder #1388 : Periodic Signal NTT&FFT
    HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)
    hdu 5894 hannnnah_j’s Biological Test 组合数学
    csu 1812: 三角形和矩形 凸包
    地铁 Dijkstra(优先队列优化) 湖南省第12届省赛
    后缀自动机专题
    数学渣的自我修养!!!
    高斯消元(浮点)
    The PLAN
    ccpc网络赛
  • 原文地址:https://www.cnblogs.com/testwang/p/5946125.html
Copyright © 2011-2022 走看看