python基于unittest框架实现的登录测试实例
1.首先建立一个命名为login.py的文件,并写上登录过程中需要调用的方法login_check()
- 其中username是要测试用例的登录用户名
- password是测试用力的登陆密码
- 程序返回值是测试的实际结果,字典中的’msg’用作与期望结果进行比对
def login_check(username,password):
'''
:param username: 登录用户名
:param password: 登录密码
:return:
'''
if 6<=len(password)<=18:
if username=='admin' and password=='123456':
return {'code':0,'msg':'登录成功'}
else:
return {'code':1,'msg':'账号密码不正确'}
else:
return {'code':1,'msg':'密码长度在6-18之间'}
设计测试用例验证上面登录是否正常
- 账号密码对
- 账号密码不匹配
- 密码小于6 4. 密码大于18
- 账号错误
2.接着新建立一个login_test.py文件写一个用于运行测试用例的类
- 首先引用之前写号的login.py文件,下面需要引用login_check方法
- 在类里面继承unittest.TestCase类
- method是调用该类时需要调用的此类里面的方法名
- 入参username和password是测试用例的账号密码
- ex是测试用例的预期结果,与login_check方法的返回值中的’msg’运用断言作比较,来判断此实际结果是否符合预期结果并输出
# -*- coding:utf-8 -*-
import unittest
from ‘’‘上一个login文件的目录 ’‘’ import login
class Login_test(unittest.TestCase):
def __init__(self,method,username,password,ex):
super().__init__(method)
self.username=username
self.password=password
self.ex=ex
def test_login(self):
result= login.login_check(self.username,self.password)
excepted = result['msg']
try:
self.assertEqual(excepted, self.ex)
except AssertionError as e:
print("该用例未通过")
result = '不通过'
raise e
else:
print("该用例通过")
result = '通过'
3.最后建立一个run_test.py文件来写测试集
# -*- coding:utf-8 -*-
from day2.day9 import login_test #引用之前写好的login_test文件
import unittest
s=unittest.TestSuite()
data=[('test_login','admin','123456','登录成功'),
('test_login','adddd','123456','账号密码不正确'),
('test_login','admin','11234565','账号密码不正确'),
('test_login','admin','12345','密码长度在6-18之间'),
('test_login','admin','12345678912345678912','密码长度在6-18之间')]
#写把测试用例写入集合中
for i in data
s.addTest(login_test.Login_test(*i))
#将集合里面的字典打散输入写好的Login_test类里面
r=unittest.TextTestRunner()
r.run(s)
#运行测试用例
*也可以用excel写好测试用例然后用openpyxl模块读取测试用例并输入
from day2.day9 import login_test
import unittest
import openpyxl
s=unittest.TestSuite()
wb=openpyxl.load_workbook('test_code.xlsx')
sheet=wb['Sheet1']
maxrow=sheet.max_row
name_list=[]
pwd_list=[]
ex_list=[]
for i in range(2,maxrow+1):
name_list.append(sheet.cell(row=i,column=1).value)
pwd_list.append(str(sheet.cell(row=i,column=2).value))
ex_list.append(sheet.cell(row=i,column=3).value)
count=len(name_list)
for i in range(0,count):
data=('test_login',name_list[i],pwd_list[i],ex_list[i])
s.addTest(login_test.Login_test(*data))
r=unittest.TextTestRunner()
r.run(s)
(转载注明出处)