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.浏览器兼容性测试,更重要的是体验这 ...
随机推荐
- java socket知识点
3.用线程池实现TCP服务器端时,首先创建一个ServerSocket实例,然后创建N个线程,每个线程反复循环,从(共享的)ServerSocket实例接收客户端连接.当多个线程同时调用一个Serve ...
- Xamarin.Android 入门之:Android的生命周期
一.前言 活动是Android应用程序的基本构建块,他们可以在许多不同的状态存在.当你把一个Android程序置于后台,过一段时间再打开发现之前的数据还存在. 二.活动状态 下面的图表说明了一个活动可 ...
- React Jest测试
一. var jest = require('jest'); jest.dontMock('../CheckboxWithLabel.js'); describe('CheckboxWithLabel ...
- 254. Factor Combinations
题目: Numbers can be regarded as product of its factors. For example, 8 = 2 x 2 x 2; = 2 x 4. Write a ...
- Android getActionBar()报空指针异常
1. 加载完视图后,再去获取: 写在setContentView()后面. 2.sdk版本: Actionbar的主题在3.0以后才有,使用的时候要确保,最低的版本不能小于3.0. <uses- ...
- Intellij Idea 创建Web项目入门(一)
相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.baidu.com/s/1dEstJ5f Tomcat(ap ...
- apache prefork和worker模式的比较
http://www.t086.com/article/4443 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
- SimpleDateFormat日期格式化
public class T { /** * @param args */ public static void main(String[] args) { // TODO Auto-generate ...
- WINCE 开机自动弹USB连接窗口问题(已解决)
平台:S3C6410+WinCE6.0 问题现像: 当启用UART0也就是COM1时,无论插没插USB线,一开机,它都会弹出个USB连接的窗口, 原因分析: 是因为在三星原版本BSP里的串口驱动上制定 ...
- JEE学习线路
传智播客:javaEE学习线路以及需要掌握的知识点:http://java.itcast.cn/subject/javastudypath/index.shtml 最近在学JavaEE,没学Java ...