自动化测试学习 python学习day7

连接MySQL数据库
python和mysql相连 需要安装Mysql-python的一个插件

然后连接

import MySQLdb
from datetime import date


if __name__ == '__main__':
    # 连接数据库,返回数据库连接对象
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')

    # 返回游标对象
    cur = conn.cursor()

    # 通过execute()执行sql语句
    # ret = cur.execute("""select * from student where sname="jack";""")
    ret = cur.execute("""select * from student;""")
    print ret

    # 从查询结果里取出一条记录
    # data = cur.fetchone()
    # print data
    # print data[0]
    # print data[1]
    # print data[2]
    # print data[3]
    # print data[4].year
    # print data[4].month
    # print data[4].day

    # 取出查询结果的所有行
    datas = cur.fetchall()
    print datas
    for data in datas:
        print data[1]
    # 断开连接
    conn.close()

将员工注册信息写入数据库,查询也从数据库查。代码如下

import MySQLdb

def register(cur):
    """
    注册用户
    :param path: 保存帐号信息的文件路径
    :return: 0: 成功 1: 失败
    """
    user = raw_input('请输入用户名:')
    passwd = raw_input('请输入密码:')

    sql = '''insert into account(username, password) values('%s', '%s');'''%(user, passwd)
    try:
        cur.execute(sql)
    except: return 1
    return 0


def login(cur):
    """
    用户登录系统
    :param path: 保存帐号信息的文件路径
    :return: 0: 成功 1: 用户名不存在,登录失败 2. 密码错误,登录失败
    """
    user = raw_input('请输入用户名:')
    passwd = raw_input('请输入密码:')
    sql = '''select password from account where username='%s';'''%user
    # print sql
    ret = cur.execute(sql)

    if ret == 1:
        if passwd == cur.fetchone()[0]:
            return 0
        else:
            return 2
    if ret==0:
        return 1



def main():
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')
    c = conn.cursor()
    while True:
        print '1. 注册用户'
        print '2. 登录系统'
        print '3. 退出系统'
        opt = raw_input('请选择[1-->3]:')
        if '1' == opt:
            ret = register(c)
            if not ret:
                print '注册用户成功\n'
            else:
                print '注册失败\n'
        elif '2' == opt:
            ret = login(c)
            if ret == 0:
                print '登录成功\n'
            elif ret == 1:
                print '用户名不存在,登录失败\n'
            else:
                print '密码错误,登录失败\n'
        elif '3' == opt:
            break
        else:
            print "错误选项!\n"

    conn.close()
    print "Bye."

if __name__ == '__main__':
    main()

unittest单元测试框架

import MySQLdb

def register(cur):
    """
    注册用户
    :param path: 保存帐号信息的文件路径
    :return: 0: 成功 1: 失败
    """
    user = raw_input('请输入用户名:')
    passwd = raw_input('请输入密码:')

    sql = '''insert into account(username, password) values('%s', '%s');'''%(user, passwd)
    try:
        cur.execute(sql)
    except: return 1
    return 0


def login(cur):
    """
    用户登录系统
    :param path: 保存帐号信息的文件路径
    :return: 0: 成功 1: 用户名不存在,登录失败 2. 密码错误,登录失败
    """
    user = raw_input('请输入用户名:')
    passwd = raw_input('请输入密码:')
    sql = '''select password from account where username='%s';'''%user
    # print sql
    ret = cur.execute(sql)

    if ret == 1:
        if passwd == cur.fetchone()[0]:
            return 0
        else:
            return 2
    if ret==0:
        return 1



def main():
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')
    c = conn.cursor()
    while True:
        print '1. 注册用户'
        print '2. 登录系统'
        print '3. 退出系统'
        opt = raw_input('请选择[1-->3]:')
        if '1' == opt:
            ret = register(c)
            if not ret:
                print '注册用户成功\n'
            else:
                print '注册失败\n'
        elif '2' == opt:
            ret = login(c)
            if ret == 0:
                print '登录成功\n'
            elif ret == 1:
                print '用户名不存在,登录失败\n'
            else:
                print '密码错误,登录失败\n'
        elif '3' == opt:
            break
        else:
            print "错误选项!\n"

    conn.close()
    print "Bye."

if __name__ == '__main__':
    main()
import unittest
from HTMLTestRunnerCN import HTMLTestRunner
from testcases import AddTests

if __name__ == '__main__':
    # 从测试用例的类中加载测试用例,返回测试套件(testsuite 测试用例的集合)
    testsuite = unittest.defaultTestLoader.loadTestsFromTestCase(AddTests)


    # report = open('report.txt', 'w')
    # 创建一个TextTestRunner对象
    # runner = unittest.TextTestRunner(stream=report, verbosity=2)

    report = open('report.html', 'w')
    runner = HTMLTestRunner(stream=report, verbosity=2,description='测试描述信息', title='Add测试报告', tester='李志超')

    # 执行测试套件
    runner.run(testsuite)
    report.close()
import unittest
from testclass import Maths

class AddTests(unittest.TestCase):
    """
    add函数测试用例
    """

    def setUp(self):
        # print 'setUp.'
        self.m = Maths()

    def tearDown(self):
        # print "tearDown."
        pass

    # 每个test开头的方法对应一个测试用例
    def test1(self):
        m = self.m
        ret = m.add(1, 2)
        self.assertEqual(ret, 3, msg='返回值不等于预期')

    # 每个test开头的方法对应一个测试用例
    def test2(self):
        m = self.m
        ret = m.add('hello', 'world')
        self.assertEqual(ret, 'helloworld', msg='返回值不等于预期')

    # 每个test开头的方法对应一个测试用例
    def test3(self):
        m = self.m
        ret = m.add([11,22], [33,])
        self.assertEqual(ret, [11,22,33,], msg='返回值不等于预期')

class AddTests(unittest.TestCase):
    """
    add函数测试用例
    """

    # @classmethod
    # def setUpClass(cls):
    #     print "setUpClass..."
    #
    # @classmethod
    # def tearDownClass(cls):
    #     print "tearDownClass..."

    def setUp(self):
        # print 'setUp.'
        self.m = Maths()

    def tearDown(self):
        # print "tearDown."
        pass

    # 每个test开头的方法对应一个测试用例
    def test1(self):
        m = self.m
        ret = m.add(1, 2)
        self.assertEqual(ret, 4, msg='返回值不等于预期')

    # 每个test开头的方法对应一个测试用例
    def test2(self):
        m = self.m
        ret = m.add('hello', 'world')
        self.assertEqual(ret, 'helloworld', msg='返回值不等于预期')

    # 每个test开头的方法对应一个测试用例
    def test3(self):
        m = self.m
        ret = m.add([11,22], [33,])
        self.assertEqual(ret, [11,22,33,], msg='返回值不等于预期')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值