QTP校验数据库中数据前台项目
作者:网络转载 发布时间:[ 2014/5/13 15:57:36 ] 推荐标签:QTP 自动化测试工具
<script>
/**
* 根据用户点击单元格,动态设置字段详细数据文本框的值
*/
function getColumnDetail(columnData){
columnData.style.color = "blue"; //数据被点过之后颜色设置为蓝色
var columnDetail=document.getElementById("columnDetail"); // 找到字段详细数据对象
columnDetail.innerHTML=columnData.innerHTML; // 改变内容
}
/**
* 设置鼠标事件响应效果
*/
function setOnMounseOverColor(columnData){
columnData.style.background = "red"; //鼠标经过时表格背景设置为红色
}
function setOnMounseOutColor(columnData){
columnData.style.background = "";
}
/**
* 获取详细数据,即每条数据的完整json字符串,并显示到整行数据一栏
*/
function getRowDataDetail(tr){
var jsonData = tr.getAttribute("jsonData"); //获取该条数据的json字符串
var rowDataDetail = document.getElementById("rowDataDetail"); // 找到整行数据对象
rowDataDetail.innerHTML=jsonData; // 改变内容
}
/**
* 校验删除操作结果
*/
function checkDeleteResult(){
var sql = document.getElementById("sql").value;
var ajax = new AjaxUtil();
var path = "<%=path %>/QTPCommonServlet?action=checkDeleteResult";
var paramData = "sql=" + sql;
var settings = {
"datatype":"text"
};
ajax.sendAjax(path,paramData,successBackFunction,errorBackFunction,settings);
function successBackFunction(result){
var deleteResult = document.getElementById("deleteResult");
if(result=='true'){
deleteResult.value = "成功";
}else{
deleteResult.value = "失败";
}
}
function errorBackFunction(){
alert("校验删除操作未执行");
}
}
/**
* 获取表数据
*/
function getAllDatas(){
var sql = document.getElementById("sql").value;
var sqlDateNumber = "0"; //sqlDateNumber为保留变量,如需要对查询数据条数进行限制,可以放开使用(需要后台支持)
var ajax = new AjaxUtil();
var path = "<%=path %>/QTPCommonServlet?action=getAllData";
var paramData = "sql=" + sql +"&sqlDateNumber=" + sqlDateNumber;
var settings = {
"datatype":"text"
};
ajax.sendAjax(path,paramData,successBackFunction,errorBackFunction,settings);
function successBackFunction(result){
createTable(result);
}
function errorBackFunction(){
alert("获取表数据操作未执行");
}
}
/**
* 动态生成表格
*/
function createTable(result){
var columnNames; //表字段名称字符串
var columnDatas; //表数据字符串
var columnNamesDetail = new Array(); //表字段名称数组
var columnData = new Array(); //表数据数组
var columnDataDetail = new Array(); //单条表数据信息数组
var columnJsonData; //单条数据的json字符串
var _table = document.getElementById("table");
var _row;
var _cell;
var rowNumber = 0; //记录数据条数,用于下面判断是否出竖向滚动条
if(result.indexOf("||")!=-1) {
columnNames = result.split("||")[0];
columnNamesDetail = columnNames.split(";");
columnDatas = result.split("||")[1];
columnData = columnDatas.split(";");
}
/**先判断表格中是否已有内容,如有则执行清空操作*/
if(0!=_table.childNodes.length){
for(var i = _table.childNodes.length-1;i>=0;i--){
_table.removeChild(_table.childNodes[i]); //删除掉每个子节点的内容
}
var div = document.getElementById("mydiv");
div.style.height="0px"; //将div高度初始化为小
}
/**生成数据条数*/
var totalNumber=document.getElementById("totalNumber"); // 找到数据条数统计对象
if(columnData==0){
totalNumber.innerHTML="共"+0+"条";
alert('抱歉,没有查询到相关数据!');
}else{
totalNumber.innerHTML="共"+columnData.length+"条"; // 改变内容
}
/**生成表头部分*/
_row = document.createElement("tr");
document.getElementById("table").appendChild(_row);
for(var j = 0; j < columnNamesDetail.length; j++) {
_cell = document.createElement("th");
_cell.innerText = columnNamesDetail[j];
_row.appendChild(_cell);
}
/**生成表主体部分*/
for (var i = 0; i < columnData.length; i++) {
columnJsonData = columnData[i].split("@_@")[1];
columnDataDetail = columnData[i].split("@_@")[0].split("#");
_row = document.createElement("tr");
_row.setAttribute("jsonData", columnJsonData); //给每个tr对象设置jsonData属性,用于被点击时得到json字符串
rowNumber++;
_row.onclick= function(){getRowDataDetail(this)};
document.getElementById("table").appendChild(_row);
for(var j = 0; j < columnDataDetail.length; j++) {
_cell = document.createElement("td");
_cell.onclick= function(){getColumnDetail(this)};
_cell.onmouseover = function(){setOnMounseOverColor(this)};
_cell.onmouseout = function(){setOnMounseOutColor(this)};
if(columnDataDetail[j]=='' || columnDataDetail[j]==undefined || columnDataDetail[j]==null){
_cell.innerText = "null";
}else{
_cell.innerText = columnDataDetail[j];
}
_row.appendChild(_cell);
}
}
/**设置表格滚动条*/
var div = document.getElementById("mydiv");
if(rowNumber>15){ //当数据超过15条时,限制div高度,出滚动条
div.style.height="400px";
}
div.style.width="";
div.style.overflow="scroll";
}
</script>
</head>
<body>
<body>
<h1 align="center">QTP数据检查</h1>
<p>
<label style="font-size:20px;">测试说明:</label><br/><hr align="left">
<label style="font-size:17px;">本页面作为QTP测试辅助页面,可以完成数据表增、删、改、查操作后的数据校验</label><br/>
<label style="font-size:17px;">增、改、查校验流程:</label><br/>
<label style="font-size:15px;">(1)在SQL定义一栏里输入相应SQL语句,如:"select * from t_hyperlink",点击取值,则在数据一栏生成对应查询数据表格</label><br/>
<label style="font-size:15px;">(2)点击表格中的任意一个单元格,则在字段详细数据一栏里显示字段信息,同时在详细数据一栏里显示整条数据对应的json字符串</label><br/>
<label style="font-size:17px;">删除校验流程:</label><br/>
<label style="font-size:15px;">在SQL定义一栏里输入查找被删除数据的SQL,如:"select * from t_hyperlink where short_link='/link100'",点击校验删除操作,</label><br/>
<label style="font-size:15px;">根据删除操作结果显示的信息进行判断删除操作是否成功执行。</label><br/><hr align="left">
</p>
<p>
<form action="http://localhost:8080/QTP/QTPCommonServlet" method="post">
<table style="width:;">
<tr>
<td style="width:50%;">
<label style="font-size:20px;width:;" >SQL定义:</label>
</td>
<td style="width:50%;">
<!--
请选择数据操作数目:
<select name="sqlDateNumber">
<option id="" name="sqlDataNumber" value="">自定义</option>
<option id="" name="sqlDataNumber" value="10">显示前10条</option>
<option id="" name="sqlDataNumber" value="all">显示全部</option>
</select>
-->
<label style="font-size:16px;width:20%;" align="right" >删除操作结果:</label>
<input type="text" style="width:25%;" id="deleteResult" />
<input type="button" style="width:25%;" value="校验删除操作" onclick="checkDeleteResult();"/>
<input type="button" style="width:25%;" value="取值" style="width: 120px;" onclick="getAllDatas();" />
</td>
</tr>
<tr>
<td colspan="2">
<textarea id="sql" name="sql" style="width:;" rows = "5"></textarea>
</td>
</tr>
</table>
</form>
</p>
<p>
<label style="font-size:20px;" >数据:</label>
<label style="font-size:20px;width:300px;" id="totalNumber">共0条</label> <br/>
<div id="mydiv">
<table border="1">
<tbody id="table">
</tbody>
</table>
</div>
</p>
<p>
<label style="font-size:20px;" >查看字段详细数据:</label> <br/>
<textarea name="sql" rows = "5" style="width:;" id="columnDetail"></textarea>
</p>
<p>
<label style="font-size:20px;" >查看整行数据:</label> <br/>
<textarea name="sql" rows = "5" style="width:;" id="rowDataDetail"></textarea>
</p>
</body>
</html>
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南