1、概念介绍
unit test:单元测试,可以简单粗暴地理解成用一段代码去测试另外一段代码。unittest作为Python单元测试框架之一,除了用来做单元测试之外,还可以用来完成接口自动化,UI自动化(配合Selenium使用),自动化框架开发等。
test fixture:测试用例执行前的准备工作以及测试用例执行完成后的清理工作。比如数据库测试前要建立连接,测试后要关闭连接。
test case:单元测试中最小的单元。
test suite:测试套件是测试用例,测试套件或者两者的集合。通常被用来把测试用例组织起然后交给test runner执行。
test runner:测试执行器是执行用例并向用户展示结果的组件。
2、准备工作
2.1、开发环境
-
操作系统:Ubuntu 18.04.1 LTS
-
Python版本:3.7.0
-
开发工具:PyCharm Edu
-
本机已安装MySQL
-
代码结构
2.2、创建数据库和表
登录数据库创建数据库ums,在数据库中创建表user_info,SQL语句如下:
create database ums;
#status分为active和inactive两种
create table user_info(
id int(10) primary key auto_increment,
name char(15) not null,
password char(100) not null,
status char(10) not null)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.3、编写简单的注册登录代码
在Project下新建Python包 userManage ,在该包下创建Python文件userRegLogin.py。注册时先判断是否存在状态为active的用户,不存在则更新信息到数据库中。登录时先判断用户状态,如果为active则去数据库中查询其密码并比较密码是否正确。userRegLogin.py的代码如下:
#coding:utf-8
#导入MySQL驱动
import mysql.connector
import warnings
#定义类user_ange
class user_manage():
#初始化 传入两个参数:用户名和密码
def __init__(self,name,passwd):
self.name = name
self.passwd = passwd
#执行select SQL语句并返回结果
def execQuerySql(self,sql,arg):
#临时屏蔽告警ResourceWarning
warnings.simplefilter("ignore", ResourceWarning)
try:
self.conn = mysql.connector.connect(host="127.0.0.1",user='root',database='ums',password='password')
self.cursor = self.conn.cursor()
self.cursor.execute(sql,[arg])
val = self.cursor.fetchone()[0]
return val
except Exception as e:
print(e)
finally:
self.cursor.close()
self.conn.close()
#执行insert语句
def execUpdateSql(self,sql,args):
warnings.simplefilter("ignore", ResourceWarning)
try:
self.conn = mysql.connector.connect(host="127.0.0.1",user='root',database='ums',password='password')
self.cursor = self.conn.cursor()
self.cursor.execute(sql,args)
self.conn.commit()
except Exception as e: