- 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 }

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 }
- 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 })())
也可以使用代码等,比如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 测试点
- 是否满足使用需求
- 界面显示是否正常
- 控件的正确性:多种操作后是否正常等
来源:http://www.cnblogs.com/testwang/p/5946125.html
