• 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()


  • 相关阅读:
    这个星期一好像有点无聊
    SQL、LINQ、Lambda三种方式比较
    [C#基础知识]Class和Struct的区别
    C#判断大批量的路径是否存在时,如何缩短判断时间
    批处理 for参数之token详解
    批处理Delims的基本知识
    读取txt文本中每一条路径(一行)并判断,路径不存在的保存在另一txt文本中
    批处理获取一些系统参数
    Cannot read configuration file due to insufficient permissions
    my97datepicker日期选择插件的用法
  • 原文地址:https://www.cnblogs.com/webtest/p/4054694.html
Copyright © 2020-2023  润新知