未来已来

一个工作任务的解决方法

上一篇 / 下一篇  2008-09-07 23:21:58 / 个人分类:自动化测试

 有个网友接到工作任务产生测试数据,具体任务如下:
“我们老大给了个这个的任务给我:
  质量:重复率<0.1%,相似率<10%
  数据根据该字段的类型和长度生成, 涵盖各种情况,包括边界值,异常值....字符串要包含所有字符集,规定的所有长度,时间跨度取前后3年以上,枚举字段要随机取完所有值....
  特殊要求:
  固定在一个字段里放测试标识,如在作者字段的前两个字符为"测试",便于识别和删除...”
  他的解决问题思路是通过lr把现有数据库中的数据导入到参数文件中,然后发送给服务器(不知道他为什么从数据库中读取数据,然后再发送),导入到file中遇到问题是 lr报错 “check file format”。经过交流之后我们把他的问题简单化,其实就是一个目标产生数据,但是中间遇到的是两个问题,一个是数据来源问题  一个是数据如何发送问题

 1.数据来源,如果是要网页文件信息,从他的方法来看,是利用lr读取数据库,那么我们来看看结合lr如何做呢?首先是利用vc写一个dll,从服务器上读取字段内容,然后在lr中读取该代码,2007年的时候当时帮大连的一个朋友写过一个dll代码,就是读取oracle数据库字段内容的,然后再lr中使用。根据以上思路写了个vc中伪代码(伪代码就是没有经过调试,或者没有实现完全的代码)如下:
   _ConnectionPtr pConnection;
_RecordsetPtr pRecordSet;
ICfxDataAdoPtr pCfxDataAdo;

pRecordSet.CreateInstance(__uuidof(Recordset));
pConnection.CreateInstance(__uuidof(Connection));

 // Read from database
 pConnection->ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=";
 pConnection->Open("","","",-1);
 pRecordSet = pConnection->Execute("SELECT * FROM xxx",NULL,-1);
 //获得pRecordSet字段数据
   
  pRecordSet->Close();
  pConnection->Close();
 
    以上代码可以封装成函数放入dll后,在lr中调用dll,lr中的代码伪代码如下,

   
    rc=lr_load_dll("xxx.dll");
 if( rc != 0 ){
  lr_error_message("lr_load_dll of advapi32.dll failed. Aborted for rc=%d",rc);
  lr_abort();
 }else{
           strcpy(data,dll中调用返回的函数数据);
           web_submit_form 发送出去要发送的数据包

 }

       我们在换一个思路,如果就是为了得到html这样的数据,那么我们是否可以自己写代码得到网站上任何的Html代码作为自己的数据,用vbs写了段代码:
   Set XML = CreateObject("Microsoft.XMLHTTP")
   XML.Open "GET", "http://www.51testing.com", False
   XML.Send
   vResponse = XML.responseText
   MsgBox vResponse
   以上代码调试通过
 
   2.如何发送数据包
     方法可以是利用lr发送,可以是直接发送请求,我们看如何直接发送请求,代码如下:
     Dim xmlhttp
    Set xmlhttp = New MSXML2.ServerXMLHTTP
    xmlhttp.Open "POST", "http://xxxxxxx", False
    xmlhttp.setRequestHeader "Content-Type", "xxxxx"
    xmlhttp.send DataToSend
   
    Set xmlhttp = Nothing

DataToSend
=====================================================
<HTML>

  <HEAD>
    <title>demo</title>
  </HEAD>

  <BODY>
     xxxxxx
  </BODY>
</HTML>
 
   思路如上,解决问题中具体用到的技术大家可以找相应资料深入研究下。   
 

 


TAG: 自动化测试

 

评分:0

我来说两句

Open Toolbar