数据库用到的是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. P1024 外星人的密码数字

    P1024 外星人的密码数字 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述     XXXX年突然有外星人造访,但大家语言不通,不过科学家们经过研究发现外星 ...

  2. sql sever 2000

    sql sever 2000安装图解 浏览:15396 | 更新:2011-12-14 16:33 1 2 3 4 5 6 7 分步阅读 做为入门系统管理员,sqlsever2000是必会项目,因为市 ...

  3. Matlab中编译C++文件

    今天在跑<Robust Object Tracking via Sparsity-based Collaborative Model>这篇文章的代码时候,发现出现如下错误: 发现错误时由于 ...

  4. 百度全新的ARM架构服务器,一个2U机箱装6台,每台4个3T硬盘,每个机箱共72TB

    1月11日,中国科学院原秘书长.国家科技重大专项国务院咨询评估组专家侯自强,来到百度南京数据中心,和他一起的还有中国工程院院士倪光南以及工业和信息化部电信研究院传输研究所副所长石友康等人.他们看到的是 ...

  5. spring 定时任务的 执行时间设置规则(转)

     spring 定时任务的 执行时间设置规则 单纯针对时间的设置规则org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运 ...

  6. apache prefork和worker模式的比较

    http://www.t086.com/article/4443 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html

  7. 解决PHP开启gd库无效的问题

    最近需要重新安装PHP,以前一直使用的都是XAMPP,基本上都不需要自己配置,现在准备直接下载官方原版的Apache和PHP,自己来慢慢摸索如何继承配置. 我下载的Apache版本为2.2.25,PH ...

  8. HDU 4686 Arc of Dream(矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686 题意: 思路: #include <iostream>#include <cs ...

  9. Junit单元测试的实例

    进行单元测试的代码 package JunitTest; import org.junit.Test; public class Calculator { private static int res ...

  10. 在Windows下通过命令行或者.bat文件统计一个目录中文件数量

    在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...