前面我更新了一些基本的数据库基本操作,这里我先补充一点数据库的操作重复了就重复了,哈哈哈
sum.py
#-*- coding:utf-8 -*- # 导入mysql import MySQLdb # host host = '39.107.102.34' # 用户名 user = 'root' # 密码 pwd = '123456' # 数据库 database = '1509E' # 端口号 port = 3306 # 链接数据库 db = MySQLdb.connect(host,user,pwd,database,port) # 或许游标 course = db.cursor() #统计每个学生的总成绩 # sql="select SUM(score),name from score group by name" #统计各科成绩以及平均成绩 # sql="select SUM(score),AVG(score),subject from score group by subject" #统计全部班级的总成绩 # sql="select SUM(score) from score" #统计每个学生的总成绩,以及平均成绩 #1分组查询 通过名字 #2.使用符合函数 SUM 来统计总成绩,AVG来统计平均成绩 #使用sql语句结构 #select 返回字段 from 表明 where 条件 分组查询(group by分组查询字段) order by升序或者降序字段 sql="select SUM(score),AVG(score) as mean,name from score group by name " course.execute(sql) students=course.fetchall() for student in students: print student[0],student[1],student[2]ucase.py
#-*- coding:utf-8 -*- # 导入mysql import MySQLdb # host host = '39.107.102.34' # 用户名 user = 'root' # 密码 pwd = '123456' # 数据库 database = '1509E' # 端口号 port = 3306 # 链接数据库 #charset='utf8'是解决Python乱码问题 db = MySQLdb.connect(host,user,pwd,database,port,charset='utf8') # 或许游标 course = db.cursor() #将数据库里面返回的数据 英文转为大写 # sql="select UCASE(name) from score" #大写转小写 sql="select LCASE(name) from score" course.execute(sql) students=course.fetchall() for student in students: print student[0]以上都是补充的内容下面我们介绍mysql在服务器上的自动化断言
老套路上代码:
suit包下创建suit.py
#-*-coding:utf-8-*- #导入单元测试 import unittest from unit import login import HTMLTestRunner import os import sys reload(sys) sys.setdefaultencoding('utf-8') #实例化suit suit=unittest.TestSuite() #加入单元测试里面 suit.addTest(unittest.makeSuite(login.Login)) files=os.getcwd()+"/jd.html" filename=open(files,'wb') runner=HTMLTestRunner.HTMLTestRunner(stream=filename,title=u"茄子",description=u"茄子登录接口") runner.run(suit)unit包login.py
#-*- coding:utf-8 -*- #导入单元测试、 import unittest #导入网络请求框架 import requests #支持七种网络请求get post delete head option trace #导入util from util import urlutil,dbutil #声明类继承单元测试 class Login(unittest.TestCase): @classmethod def setUpClass(self): #实例化 self.URL=urlutil.URL() self.db=dbutil.DBManager() pass def setUp(self): pass def tearDown(self): pass def test_us_pw(self): #网络请求 self.login=requests.post(self.URL.JD_SERVLET+self.URL.JD_LOGIN, data=self.URL.JD_LOGIN_PARAMETER) #这一刻返回的是一个对象,我们需要对对象进行json解析 self.login_json=self.login.json() #打印自动化测试报告 # print self.login_json,self.URL.JD_SERVLET+self.URL.JD_LOGIN #获取用户名id和token进行断言 #连接数据库 self.cursor=self.db.Connection() #执行sql语句 sql_login="select userId,username,token from qiezzilogin where username='zhangsan1'" self.cursor.execute(sql_login) #获取对象 self.persons=self.cursor.fetchall() #使用for循环进行遍历 for person in self.persons: userId=person[0] username=person[1] token=person[2] #进行断言 self.assertEqual(self.login_json['username'],username) self.assertEqual(self.login_json['userId'],userId) self.assertEqual(self.login_json['tpken'],token) passutil包urlutil.py
#-*-coding:utf-8-*- class URL(object): #测试环境的基类 JD_SERVLET="http://39.107.102.34:8080/jd/" #生产环境 #JD_SERVLET="http://39.107.102.34:8080/jd/" #登录的接口 JD_LOGIN="login" #请求参数,用户名和密码 JD_LOGIN_PARAMETER={ "username":"zhangsan1", "password":"123456" }dbutil.py
#-*-coding:utf-8-*- #导入数据库包 import MySQLdb #封装 class DBManager(object): #指定主机名字 __host="39.107.102.34" #用户名 __user="root" #密码 __pwd="123456" #数据库 __Database="qiezi" #端口号 __port=3306 #连接数据库的方法 def Connection(self): self.db=MySQLdb.connect(self.__host,self.__user, self.__pwd,self.__Database,self.__port) self.cursor=self.db.cursor() return self.cursor #关闭数据库 def CloseDb(self): self.db.close()
ok了,这里就举一个简单的例子,自己举一反三吧。。。