数据驱动管理数据

本文介绍如何使用Selenium和数据驱动测试(DDT)进行自动化登录测试。通过具体示例展示了测试用例的设计与实现过程,包括安装配置、编写测试代码及数据驱动等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先去安装ddt插件,直接去命令行里安装,执行以下命令

 安装完成后去用例里导入相应方法:

from page import Loguser
import unittest
from selenium import webdriver
# 导入数据驱动
import ddt

'''
测试用例:
1.输入正确的密码错误的用户名,点击登录。期望结果登录失败
2.输入正确的用户名错误的密码,点击登录。期望结果登录失败
3.输入正确的用户名和正确的密码,期望结果登录成功

'''
# 驱动数据
test_datas=[{"username":"1761033166","userpass":"duanyu1203..", "expect":"false"},
{"username":"17610331663","userpass":"duanyu1203.", "expect":"false"},
{"username":"17610331663","userpass":"duanyu1203..", "expect":"true"}

]

@ddt.ddt
class LoginTest(unittest.TestCase):

@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()

cls.pg = Loguser.Longinuser(cls.driver)

def setUp(self):
self.driver.get("https://www.baidu.com")


# 执行操作一样的用例我可以将用例参数化
def longin_case(self, username, userpass, expect):
self.pg.chufadenglu()
self.pg.ckyonghumingdenglu()
self.pg.sryonghuming(username)
self.pg.srmima(userpass)
self.pg.ckdengluanniu()
if expect == "true":
self.assertTrue(self.pg.jiancedenglu())
elif expect == "false":
self.assertFalse(self.pg.jiancedenglu())
else:
print("本次期望传参结果错误:" + expect)

return "参数错误"




@ddt.data(*test_datas)
def test_01(self, data):
# 用数据驱动前的代码
# 输入正确的密码错误的用户名,点击登录。期望结果登录失败
# data1 = test_datas[2]
# print("测试数据:%s" % data1)
# self.longin_case(data1["username"], data1["userpass"], data1["expect"])
# 用数据驱动后的代码

print("测试数据:%s" % data)
self.longin_case(data["username"], data["userpass"], data["expect"])


#
#
# def test_02(self,data):
# # 输入正确的用户名错误的密码,点击登录。期望结果登录失败
# # 优化前的代码
# # self.pg.chufadenglu()
# # self.pg.ckyonghumingdenglu()
# # self.pg.sryonghuming()
# # self.pg.srmima("d4as668")
# # self.pg.ckdengluanniu()
# # self.assertFalse(self.pg.jiancedenglu())
# '''优化后的代码'''
# data1 = test_datas[1]
# print("测试数据:%s" % data1)
# self.longin_case(data1["username"], data1["userpass"], data1["expect"])
#
#
# def test_03(self,data):
# # 输入正确的用户名和正确的密码,期望结果登录成功
# data1 = test_datas[2]
# print("测试数据:%s" % data1)
# self.longin_case(data1["username"], data1["userpass"], data1["expect"])
#
#
#
#
#
# def test_04(self):
# # 执行自动化登录
# self.pg.longin()
# self.assertTrue(self.pg.jiancedenglu())
#







@classmethod
def tearDownClass(cls):
cls.driver.quit()



if __name__ == "__main__":
unittest.main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值