单元测试初步使用
# 创建一个叫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 "没有弹窗"