自动化测试思考1

前些日子,CTO给我下达了对成熟模块进行自动化测试的任务。要求抛离开工具,做一些自动化测试。没有思路和方向,自己开始在上网查阅些资料,看了一些将手动测试转变自动化。无异于就是手动写脚本测试,实现工具能完成的功能。得到这个点,开始定位、摸索和实践。

从概念入手进行剖析,对于自动化测试的概念,网络上可以说是多如牛毛,自己还是比较倾向于:用工具或编码模拟人工操作,记录结果并和预先设定的结果进行比较,而达到测试的目的!

从公司产品进行入手,公司的产品架构为LAMP(Linux+Apache+Mysql+Php),以网站为主要产品。

得到以上信息和需求定义后,开始着手操作,总共思路有二:

第一 网站的测试

第二 类和方法的测试

先说第一 网站测试:

进行网站测试,以百度为例,提供入口,要求用户输入网址

显示如下:

很简单的一个入口

代码如下:

<form id="UrlForm" name="UrlForm" method="post" action="test2.php">

  请输入链接:

  <label>

  <input name="Url" type="text" id="Url" value="http://" />

  </label>

  <input name="提交" type="submit" id="提交" value="提交" />

</form>

用户输入www.baidu.com后,自动跳转到test2.php进行处理

    

    思路:把搜索的关键字 存在数据库中,通过调用数据库,达到自动读取关键字,并通过打开页面,进行搜索,然后对搜索的页面 进行数据抓取 并输出结果

    显示如下:

    

代码如下:

<?php

//error_reporting(E_ALL);

require_once "conn.php";//与数据库连接

$mysql="select LK_Name from links"; //搜索出数据库中的值

$result=mysql_query($mysql);

$thurl=$_POST['Url'];

if($num=mysql_num_rows($result)){

while($row=mysql_fetch_array($result)){

$ie = new COM("InternetExplorer.Application");

$ie->Visible = True;

//$ie->Visible = False;

$ie->Navigate($thurl);

//echo '<pre>';var_dump($ie);

while($ie->Busy)

{

com_message_pump(4000);

}

$ie->document->all->f->wd->focus();

$ie->document->all->f->wd->value = $row['LK_Name'];

$kd=$ie->document->all->f->wd->value;

$ie->document->all->f->submit();

//echo '<pre>';var_dump($ie);

//exit;

//$ie = null;

if (!($contents = file_get_contents("".$thurl."/s?wd=".$kd."")))

  {

   //echo $contents;

    echo 'Could not open URL';

    exit;

  } 

if (preg_match_all("|$kd|",$contents,$matches))

 {

    //echo '<pre>';var_dump($matches);

   for($i=0;$i<count($matches[0]);$i++){

//exit;

print "A match was found:".$matches[0][$i];

echo "<br />";

}

echo count($matches[0]);

echo "<br />";

 } else {

    print "A match was not found.<br />";

 } 

}

}

?>

   第二 对方法和类的测试

   

    通过调用写好的类中的方法,实现对数据库中的值进行计算,并把该方法得到的值 存入数据库中,和预先设置的值进行对比 然后输出正确和错误的结果!

   先写一个方法,以加法为例,命名为add.php

  代码如下:

  <?php

class add

{

    function Num_Add($i,$j)

    {

       return $i+$j;

    }

}

  

?>

读取数据并插入到表中,代码如下:

<?php

require_once "add.php";

require_once "conn.php";

$mysql="select T_ID,A_Data,B_Data,A_Result,V_Result from test";

$result=mysql_query($mysql);

if($num=mysql_num_rows($result))

{

while($row=mysql_fetch_array($result)){

$abc=new add;

$a=$abc->Num_Add($row['A_Data'],$row['B_Data']);

$updatesql="update test set A_Result='".$a."'where T_ID='".$row['T_ID']."'";

mysql_query($updatesql);

}

}

echo "<script>alert('计算结束!');location.href='validtae.php';</script>";

?>

进行对比,代码如下:

<?php

require_once "conn.php";

$mysql="select A_Result,V_Result from test";

$result=mysql_query($mysql);

if($num=mysql_num_rows($result))

{

$correct=0;

$worng=0;

while($row=mysql_fetch_array($result))

{

if($row['A_Result']==$row['V_Result'])

{

$correct++;

}

else

{

$worng++;

}

}

    echo "正确数据有:".$correct."条!";

echo "<br>";

echo "错误数据有:".$worng."条!";

}

?>

原文地址:https://www.cnblogs.com/mengxiao1001/p/1751281.html