web自动化框架之三获取数据库值与界面值比较~~
数据库用到的是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自动化框架之三获取数据库值与界面值比较~~的更多相关文章
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- 基于Selenium的Web自动化框架增强篇
在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...
- Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...
- web自动化框架如何设计
web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...
- 基于Selenium的web自动化框架
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
- Web自动化框架LazyUI使用手册(1)--框架简介
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- Web自动化框架搭建——前言
1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这 ...
随机推荐
- Windows JDK环境变量的配置
下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装 计算机-->属性-->高级系统设置- ...
- java split IP地址要用双斜杠
示例代码: public void test() { String address = "11.12.13.14:800"; System.out.println(address. ...
- Sina App Engine(SAE)入门教程(1)
此教程只针对刚接触SAE的小白用户,资深码农.高手请绕道.首先还是一个经典的实例,hello sae. 创建应用 在注册完账号之后,需要到 http://sae.sina.com.cn/?m=myap ...
- Java多线程2:实现多线程的两种方式
原文:http://www.cnblogs.com/skywang12345/p/3479063.html 常见的实现多线程的方式有2种,一是继承Thread类,二是实现 Runnable接口,还可以 ...
- set集合_变长
//set可变集合 //便利初始化函数分配大小 NSMutableSet *mutableSet1 = [[NSMutableSet alloc] initWithCapacity:3]; NSMut ...
- 使用 powershell 的 grep 过滤文本
使用 powershell 的 grep 过滤文本 有个log文件,大小在4M左右,要求找出里面耗时超过100s 的记录.首先想到了强大的 grep ,那么就搞起. 先在网上找一下资料,这篇文章,有几 ...
- HTML常用标签及其全称
<a href="#">a 超级链接(anchor)</a> <abbr title="abbreviation的简写"& ...
- 分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客
这些天,由于公司的业务需求,接触到了ssl证书和https协议.博客前几篇文章也分享了在WEB服务器上安装SSL证书,为网站开启https协议的教程,感兴趣的童鞋可以前往查看相关文章: <Lin ...
- BZOJ 2844 albus就是要第一个出场(高斯消元)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2844 题意: 给出一个长度为n的正整数数列A.每次选出A的一个子集进行抑或(空集抑或值为 ...
- Android 面试题(经典)
1.Actvity的生命周期,生命周期中的onCreate与onResume有什么区别 Activity的生命周期有:onCreate,onStart,onRestart,onResume,onPau ...