数据库用到的是mysql,框架涉及数据库,主要包含两个方面,一个是每个案例执行完毕后,插入案例相关信息与数据;一个是web界面数据核对的时候,需要从sql中获取某行某列值与界面某个值做比较。

描述:web很大一部分的测试,就是对比界面上面的数据信息是否准确;比如一些简单数据的统计、数据的基本信息、也包括数据转换的数据(0:正常,1:停用);但是考虑web数据核对的时候,主要有两个方案,一个是初始化一批数据,然后拿界面数据与初始化数据做比较;第二中是直接拿数据库中相关信息数据,然后再和界面做一个对比;考虑到,第一种方案支持不是太好,web页面数据核对都是 采取第二中方案,其中有两种实现方式,一种是取一个sql的数据集合再和界面元素拼装成一个数据集合对比,另外一种是取一段sql数据集合的某行某列和界面一个元素对比。

web数据核对这块,抛砖引玉了,有什么好想法,好建议欢迎探讨~~谢谢

下面是实例代码(例子只涉及数据对比):

#coding=utf-8
'''
Created on 2014年7月4日

@author: 一声叹息
'''
import MySQLdb
import sys
import os
from selenium import webdriver
import time
# reload(sys)
# reload(sys).setdefaultencoding('gbk')

# def printStr(**kwargs):
# return kwargs[0][3]

#初始化查询sql
sql = "select * from testdata"

'''
create table `testdata` (
`id` double ,
`name` varchar (600)
);
insert into `testdata` (`id`, `name`) values('1','testname');
insert into `testdata` (`id`, `name`) values('3','test_百度翻译');
'''
#初始化数据库连接参数
try:
conn =MySQLdb.connect(host="192.168.0.153",port=3306,user="root",passwd="mysql123",db="test",charset="utf8")
print "链接成功"
except MySQLdb.Error, e:
print "链接失败"

#定义取列
def printStr(r,c,*args):
return args[0][c]
#封装一个查询方法,传入参数sql,行r,列c
def findData(str,r,c):
cursor = conn.cursor()
cursor.execute(str)
return printStr(r,c,cursor.fetchall()[r])
conn.close()

def allData(str):
cursor = conn.cursor()
cursor.execute(str)
for i in cursor.fetchall():
print i
return "输出alldata完毕"
conn.close()

#获取web界面某个项值
browser = webdriver.Firefox()
browser.get("http://www.baidu.com/")
time.sleep(3)
browser.find_element_by_id("kw1").send_keys("test")
time.sleep(2)
browser.find_element_by_id("su1").click()
time.sleep(1)

#获取某个值,转换类型
print "%s"%str(browser.find_element_by_xpath("/html/body/div/div[6]/div/div[2]/div/h3/a").text)

#数据对比,

print str(browser.find_element_by_xpath("/html/body/div/div[6]/div/div[2]/div/h3/a").text) == str(findData(sql,1,1))

time.sleep(1)
browser.close()
browser.quit()

web自动化框架之三获取数据库值与界面值比较~~的更多相关文章

  1. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  2. 基于Selenium的Web自动化框架增强篇

    在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...

  3. Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)

    作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...

  4. web自动化框架如何设计

    web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...

  5. 基于Selenium的web自动化框架

    转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...

  6. 【转】基于Selenium的web自动化框架(python)

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...

  7. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

  8. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  9. Web自动化框架搭建——前言

    1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这 ...

随机推荐

  1. SQL server 复习一

    第一天 下面我们从最基础的开始: 在运行里面输入:services.msc 一.启动服务 二.数据库登录的两种身份验证方式 另外一种身份验证方式就是SQL Server身份验证. sa不能使用的时候可 ...

  2. DIV+CSS列表式布局(同意图片的应用)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. HTML5 编辑 API 之 Range 对象(二)

    1.Range.cloneContents()The Range.cloneContents() returns a DocumentFragment copying the objects of t ...

  4. idea15 如何设置代码不自动折叠

    IDEA默认情况下,如果方法体中只有一行,这个方法体会折叠起来,就像这种

  5. PCL—低层次视觉—点云分割(基于形态学)

    1.航空测量与点云的形态学 航空测量是对地形地貌进行测量的一种高效手段.生成地形三维形貌一直是地球学,测量学的研究重点.但对于城市,森林,等独特地形来说,航空测量会受到影响.因为土地表面的树,地面上的 ...

  6. C++仿函数(functor)详解

    C++仿函数(functor)详解 所谓的仿函数(functor),是通过重载()运算符模拟函数形为的类. 因此,这里需要明确两点: 1 仿函数不是函数,它是个类: 2 仿函数重载了()运算符,使得它 ...

  7. struts1,struts2,springMVC终极对比

    最近做项目用到了struts2,之前一直是用struts1和springMVC.感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比. Struts1官方 ...

  8. HDU 4946 共线凸包

    题目大意: 一些点在一张无穷图上面,每个点可以控制一些区域,这个区域满足这个点到达这个区域的时间严格小于其他点.求哪些点能够控制无穷面积的区域. 题目思路: 速度小的控制范围一定有限. 速度最大当且仅 ...

  9. 简单实现WPF界面控件换肤效果

    效果如下如图:选择皮肤颜色 1.首先新建一个如图界面: 选择匹夫下拉框Xaml代码如下:三种颜色选项,并触发SelectionChanged事件 <ComboBox Height="2 ...

  10. bzoj2489

    这种题完全可以暴力找规律,暴力打表各种搞法 这里有一篇比较全面的题解:http://acm.uestc.edu.cn/bbs/read.php?tid=3698&page=1&tore ...