Android+服务器上操作mysql+自动化测试

前面我更新了一些基本的数据库基本操作,这里我先补充一点数据库的操作重复了就重复了,哈哈哈

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)

            pass
util包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了,这里就举一个简单的例子,自己举一反三吧。。。

你可能感兴趣的:(测试)