单元测试案例和unittest框架初步使用

本文介绍了一个使用Python的Selenium库和unittest框架实现的百度登录页面自动化测试案例。该测试包括了登录流程的实现及断言验证。

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

单元测试初步使用
# 创建一个叫abc的功能方法
def abc(a, b):
# 具体规则为a和b 为传入数据,c=传入的a加上传入的b乘以5,并且把结果反馈出来
# 具体功能
c = a+b*5
# 抛出返回结果
return c

# 执行的主方法
if __name__ == "__main__":
# d 等于调用abc方法,同时传入方法参数1和5,得出结果
d = abc(1, 5)
# 打印结果
print(d)


框架结合单元测试初步使用,百度首页登录脚本测试

from selenium import webdriver
# 导入鼠标悬停功能类
from selenium.webdriver import ActionChains
import time
# 导入单元测试框架
import unittest

# 使用导入的框架
class LoginTest(unittest.TestCase):

# 第一个可以执行的测试用例
def Test_01(self):

# 打开谷歌浏览器
driver = webdriver.Chrome()
# 打开百度首页
driver.get("https://www.baidu.com")
time.sleep(2)
# 点击登录按钮
driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()
time.sleep(3)
# 点击用户名登录按钮
driver.find_element_by_xpath(".//*[@title='用户名登录']").click()
time.sleep(2)
# 输入用户名
driver.find_element_by_xpath(".//*[@name='userName']").send_keys("17610331663")
time.sleep(2)
# 输入密码
driver.find_element_by_xpath(".//*[@name='password']").send_keys("duanyu1203..")
time.sleep(2)
# 点击自动登录选项框
driver.find_element_by_xpath(".//*[@name='memberPass']").click()
time.sleep(2)
# 点击登录按钮
driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__submit']").click()
time.sleep(3)
# 获取登录用户名
t = driver.find_element_by_xpath(".//*[@id='s_username_top']/span").text
time.sleep(2)

# 打印用户名
print("用户名:"+t)
# 进行断言判断,结果相等返回true 不相等返回false
self.assertTrue(t == u"最皮的DYC")


# 判断用户名是否正确
if t == u"最皮的DYC":
# 用户名正确提示登录成功
print("登录成功")

time.sleep(3)
# 获取需要鼠标悬停的位置
move = driver.find_element_by_xpath(".//*[@class='user-name']")
time.sleep(2)
# 进行鼠标悬停操作
ActionChains(driver).move_to_element(move).perform()
time.sleep(3)
# 点击出现菜单的退出按钮
driver.find_element_by_xpath(".//*[@class='quit']").click()
time.sleep(3)
# 点击弹出的确认退出登录按钮
driver.find_element_by_xpath(".//*[@class='s-btn btn-ok']").click()

# 如果获取不到用户名或者获取错误的用户名则判断登录失败
else:
# 打印出失败提示
print("登录失败")

time.sleep(3)

driver.quit()




标准测试用例书写:

from selenium import webdriver
# 导入鼠标悬停功能类
from selenium.webdriver import ActionChains
import time
# 导入单元测试框架
import unittest

# 使用导入的框架
class LoginTest(unittest.TestCase):



def setUp(self):

# 打开谷歌浏览器
self.driver = webdriver.Chrome()
# 打开百度首页
self.driver.get("https://www.baidu.com")
time.sleep(2)

def tearDow(self):
# 清空登录
self.driver.delete_all_cookies()
# 刷新界面
self.driver.refresh()

# 第一个可以执行的测试用例
def test_01(self):


time.sleep(2)
# 点击登录按钮
self.driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()
time.sleep(3)
# 点击用户名登录按钮
self.driver.find_element_by_xpath(".//*[@title='用户名登录']").click()
time.sleep(2)
# 输入用户名
self.driver.find_element_by_xpath(".//*[@name='userName']").send_keys("17610331663")
time.sleep(2)
# 输入密码
self.driver.find_element_by_xpath(".//*[@name='password']").send_keys("duanyu1203..")
time.sleep(2)
# 点击自动登录选项框
self.driver.find_element_by_xpath(".//*[@name='memberPass']").click()
time.sleep(2)
# 点击登录按钮
self.driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__submit']").click()
time.sleep(3)
# 获取登录用户名
t1 = self.get_long_username()

# 打印用户名
print("用户名:"+t1)
# 进行断言判断,结果相等返回true 不相等返回false
self.assertTrue(t1 == u"最皮的DYC")
t3 = self.is_alert_exist()
print(t3)


# 判断用户名是否正确
if t1 == u"最皮的DYC":
# 用户名正确提示登录成功
print("登录成功")

# time.sleep(3)
# # 获取需要鼠标悬停的位置
# move = self.driver.find_element_by_xpath(".//*[@class='user-name']")
# time.sleep(2)
# # 进行鼠标悬停操作
# ActionChains(self.driver).move_to_element(move).perform()
# time.sleep(3)
# # 点击出现菜单的退出按钮
# self.driver.find_element_by_xpath(".//*[@class='quit']").click()
# time.sleep(3)
# # 点击弹出的确认退出登录按钮
# self.driver.find_element_by_xpath(".//*[@class='s-btn btn-ok']").click()

# 如果获取不到用户名或者获取错误的用户名则判断登录失败
else:
# 打印出失败提示
print("登录失败")

time.sleep(3)

self.driver.quit()



def test_02(self):


time.sleep(2)
# 点击登录按钮
self.driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()
time.sleep(3)
# 点击用户名登录按钮
self.driver.find_element_by_xpath(".//*[@title='用户名登录']").click()
time.sleep(2)
# 输入用户名
self.driver.find_element_by_xpath(".//*[@name='userName']").send_keys("17610331663")
time.sleep(2)
# 输入密码
self.driver.find_element_by_xpath(".//*[@name='password']").send_keys("duanyu1203...")
time.sleep(2)
# 点击自动登录选项框
self.driver.find_element_by_xpath(".//*[@name='memberPass']").click()
time.sleep(2)
# 点击登录按钮
self.driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__submit']").click()
time.sleep(3)

t2 = self.get_long_username()
print("用户名字为:"+t2)
t3 = self.is_alert_exist()
print(t3)


# 判断在执行登录后是否有用户名
def get_long_username(self):
try:
# 获取登录用户名
t = self.driver.find_element_by_xpath(".//*[@id='s_username_top']/span").text
time.sleep(2)
print(t)

return t
except:
return "登录失败"


def is_alert_exist(self):
try:

time.sleep(5)
# 切换到弹窗
alert = self.driver.switch_to.alert
# 获取弹窗文本
text = alert.text
# 点击弹窗确认按钮
alert.accept()
# 返回弹窗文本
return text
except:

return "没有弹窗"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值