python 接口自动化测试--代码实现(七)
数据库还原脚本:
#! /usr/bin/python
# coding:utf-8
import time
from Engine.SqlEngine import MSSQL
COUNT=1
def restoreRelease():
global COUNT
checkConSql = "select spid from sysprocesses where dbid in (select dbid from sysdatabases where name='SOATest')"
restoreSql = "RESTORE DATABASE SOATest FROM DATABASE_SNAPSHOT = 'SOATest_ss'"
dbc=MSSQL('192.168.1.2','yht','yht','Master')
conNum = dbc.ExecQuery(checkConSql)
if COUNT < 5:
if len(conNum) == 0:
print(u'%d条连接数,可以还原数据库,还原中...'%len(conNum))
dbc.ExecNonQuery(restoreSql)
print(u'数据库还原完成')
return True
else:
print(u'%d条连接数占用无法还原数据库,5秒后重试'%len(conNum))
time.sleep(5)
COUNT=COUNT+1
restoreRelease()
else:
print(u'%d条连接数始终占用,已试过5次依然无法还原数据库'%len(conNum))
return False
SqlEngine.py
#! /usr/bin/python
# coding:utf-8
import pymssql
import sys
from Engine.DataEngine import decoCatchExcep
reload(sys)
sys.setdefaultencoding('utf-8')
class MSSQL(object):
"""
对pymssql的简单封装
pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启 用法: """ def __init__(self,host,user,pwd,db):
self.host = host
self.user = user
self.pwd = pwd
self.db = db def __GetConnect(self):
"""
得到连接信息
返回: conn.cursor()
"""
if not self.db:
raise(NameError,"没有设置数据库信息")
self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
cur = self.conn.cursor()
if not cur:
raise(NameError,"连接数据库失败")
else:
return cur
@decoCatchExcep
def ExecQuery(self,sql): cur = self.__GetConnect()
cur.execute(sql)
resList = cur.fetchall()
self.conn.close()
return resList
@decoCatchExcep
def ExecNonQuery(self,sql):
cur = self.__GetConnect()
self.conn.autocommit(True)
cur.execute(sql)
self.conn.autocommit(False)
self.conn.commit()
self.conn.close()
装饰器decoCatchExcep:
def decoCatchExcep(func):
def _decoCatchExcep(*args, **kwargs):
try:
ret = func(*args, **kwargs)
return ret
except Exception,e:
print(func.__name__+' : '+str(e).encode('gb18030'))
LogPro.writeException(str(e).encode('gb18030'))
return _decoCatchExcep
python 接口自动化测试--代码实现(七)的更多相关文章
- python 接口自动化测试--代码实现(八)
用例读入数据库: #! /usr/bin/python # coding:utf-8 import sys,os from Engine import DataEngine reload(sys) s ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- python 接口自动化测试(三)
1.WriteIni.py import ConfigParser cf = ConfigParser.ConfigParser() cf.add_section("PC_WSDL" ...
- 记录python接口自动化测试--简单总结一下学习过程(第十目)
至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有 ...
- python - 接口自动化测试实战 - case1 - 再次优化版
本次优化: 1. 各级分Package 2. 封装[ReadExcel]类 3. 封装[ReadConfig]类 4. 封装[GetLog]类 5. 引入ddt数据驱动测试,优化测试用例代码 ...
- python接口自动化测试(一)
本节开始,开始介绍python的接口自动化测试,首先需要搭建python开发环境,到https://www.python.org/下载python 版本直接安装就以了,建议 下载python2.7.1 ...
随机推荐
- Javascript 继承 图形化展示
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" conte ...
- iOS 图片水印、图片合成文字或图片实现
这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...
- ubuntu 更新引导命令
sudo update-grub 运行结果: Generating grub configuration file ...Warning: Setting GRUB_TIMEOUT to a non- ...
- netty 对 protobuf 协议的解码与包装探究(2)
netty 默认支持protobuf 的封装与解码,如果通信双方都使用netty则没有什么障碍,但如果客户端是其它语言(C#)则需要自己仿写与netty一致的方式(解码+封装),提前是必须很了解net ...
- [转载] ping和telnet的区别
转载自:http://www.cnblogs.com/Jtianlin/p/4045021.html windown7下打开telnet功能: 控制面板 --- > 程序(小图标下直接到[程序和 ...
- 在QT中引用Shark Machine Learning library
最近因为项目需要,看了看机器学习方面的东西.Google一番,发现Shark正是朕需要的东西.于是准备按官方文档来使用它了.但是官方文档只有怎么生成静态库,并没有在QT里引用的sample. 废话不多 ...
- express框架介绍
//引入express模块 var express = require('express'); //调用express方法,接受其返回值(返回值为对象) var app = express(); ap ...
- C语言memset学习
#include <stdio.h> #include <memory.h> ]); //函数声明 void main(){ ]={{,,},{,,},{,,},{,,}};/ ...
- java 文件操作 写入和读取(小结一)
参考了这篇博客并优化,谢谢:http://blog.sina.com.cn/s/blog_99201d890101b4le.html 功能: 实现通过两个类完成先写入文件,再读取数据计算显示 pac ...
- 基于 GCDAsyncSocket,简单实现类似《你猜我画》的 socket 数据传输
一.前言 Socket Socket 是对 TCP/IP 协议的封装,其中IP协议对应为网络层,TCP 协议对应为传输层,而我们常用的HTTP协议,是位于应用层,在七层模型中HTTP协议是基于 TCP ...