目录
一、测试用例
1、以表格的形式展示
2、以思维导图的形式展示
二、自动化测试
1、登录测试
1.测试数据
2.测试代码
import csv
import sys
from ddt import ddt, data, unpack ,file_data
from selenium import webdriver
import time
import unittest
# 对测试文件进行读取defloginText(file_name):
rows =[]
path = sys.path[0]# Test_login.txt 所在的路径:脚本路径中的data文件夹里withopen(path+'/data/'+file_name,'r',encoding='UTF-8')as f:
readers = csv.reader(f,delimiter=',',quotechar='|')next(readers,None)for row in readers:
temprows=[]for i in row:
temprows.append(i)
rows.append(temprows)return rows
# 数据驱动(ddt)@ddtclassLogin(unittest.TestCase):defsetUp(self):
self.driver = webdriver.Firefox()
self.url ="http://127.0.0.1:8080/login.html"
self.driver.maximize_window()
time.sleep(2)@data(*loginText('Test_login.txt'))@unpackdeftest_login(self,username,password):
driver = self.driver
url = self.url
driver.get(url)# 清除账号与密码的输入框
driver.find_element_by_id("username").clear()
driver.find_element_by_id("password").clear()
driver.find_element_by_id("username").send_keys(username)
driver.find_element_by_id("password").send_keys(password)
time.sleep(2)
driver.find_element_by_id("submit").click()
time.sleep(1)try:# 定位弹框(获取弹框的操作句柄)
alert = driver.switch_to.alert
# 点击弹框中的确认按钮
alert.accept()# 登录成功的标题为:在线音乐
self.assertEqual("在线音乐", driver.title, msg="登录失败")except:# 登录成功的标题为:在线音乐
self.assertEqual("在线音乐", driver.title, msg="登录失败")
time.sleep(2)deftearDown(self):
self.driver.quit()
time.sleep(2)if __name__ =='__main__':
unittest.main()
3.测试结果
2、注册测试
1.测试数据
2.测试代码
import csv
import sys
from ddt import ddt, data, unpack ,file_data
from selenium import webdriver
import time
import unittest
# 对测试文件进行读取defresulterText(file_name):
rows =[]
path = sys.path[0]# Test_login.txt 所在的路径:脚本路径中的data文件夹里withopen(path+'/data/'+file_name,'r',encoding='UTF-8')as f:
readers = csv.reader(f,delimiter=',',quotechar='|')next(readers,None)for row in readers:
temprows=[]for i in row:
temprows.append(i)
rows.append(temprows)return rows
@ddtclassregister(unittest.TestCase):defsetUp(self):
self.driver = webdriver.Firefox()
self.url ="http://127.0.0.1:8080/login.html"
url = self.url
driver = self.driver
driver.get(url)
driver.find_element_by_id("register").click()
time.sleep(2)
self.driver.maximize_window()
time.sleep(2)@data(*resulterText('Test_result.txt'))@unpackdeftest_result(self,username,password,repassword):
driver = self.driver
driver.get("http://127.0.0.1:8080/register.html")
driver.find_element_by_id("username").clear()
driver.find_element_by_id("password").clear()
driver.find_element_by_id("repassword").clear()
driver.find_element_by_id("username").send_keys(username)
driver.find_element_by_id("password").send_keys(password)
driver.find_element_by_id("repassword").send_keys(repassword)
time.sleep(2)
driver.find_element_by_id("register").click()
time.sleep(2)try:# 定位弹框(获取弹框的操作句柄)
alert = driver.switch_to.alert
driver.implicitly_wait(10)# 操作获取的句柄关闭 alter
alert.accept()
self.assertEqual("音乐播放器登录页面", driver.title, msg="注册失败")except:
self.assertEqual("音乐播放器登录页面",driver.title,msg="注册失败")deftearDown(self):
self.driver.quit()
time.sleep(2)if __name__ =='__main__':
unittest.main()
3.测试结果
3、上传文件测试
1.测试数据
2.测试代码
import csv
import sys
from ddt import ddt, data, unpack, file_data
from selenium import webdriver
import os
import time
import unittest
# 对测试文件进行读取defuploadText(file_name):
rows =[]
path = sys.path[0]withopen(path +'/data/'+ file_name,'r', encoding='UTF-8')as f:
readers = csv.reader(f, delimiter=',', quotechar='|')next(readers,None)for row in readers:
temprows =[]for i in row:
temprows.append(i)
rows.append(temprows)return rows
@ddtclassUpload(unittest.TestCase):# 一个测试用例执行完以后,需要重新登录才可以上传文件defsetUp(self):
self.driver = webdriver.Firefox()
self.url ="http://127.0.0.1:8080/login.html"
self.driver.maximize_window()
url = self.url
driver = self.driver
driver.get(url)
driver.find_element_by_id("username").clear()
driver.find_element_by_id("password").clear()
driver.find_element_by_id("username").send_keys("admin")
driver.find_element_by_id("password").send_keys("123456")
time.sleep(2)
driver.find_element_by_id("submit").click()
time.sleep(2)@data(*uploadText('Test_upload.txt'))@unpackdeftest_upload(self, path, singer):
driver = self.driver
time.sleep(2)
driver.get("http://127.0.0.1:8080/list.html")# 点击添加歌曲按钮# time.sleep(10)
driver.find_element_by_xpath("/html/body/div/div[2]/a[2]").click()
driver.find_element_by_id("file").send_keys(os.path.abspath(path))
driver.find_element_by_id("singer").send_keys(singer)
time.sleep(2)
driver.find_element_by_xpath("//*[@id='submit']").click()
time.sleep(2)
self.assertEqual("在线音乐", driver.title, msg="上传文件失败")deftearDown(self):
self.driver.quit()
time.sleep(2)if __name__ =='__main__':
unittest.main()
3.测试结果
4、生成测试报告
1.代码
import HTMLTestRunner
import os
import sys
import unittest
import time
defcreatesuite():# 测试以Test_开头,.py结尾的文件
disvovers = unittest.defaultTestLoader.discover("../Test",pattern="Test_*.py",top_level_dir=None)print(disvovers)return disvovers
if __name__ =='__main__':# 创建HTML报告生成文件夹,获取当前脚本存放的路径
curpath = sys.path[0]# 创建文件夹ifnot os.path.exists(curpath+'/resultreport'):
os.makedirs(curpath+'/resultreport')# 文件夹命名(以生成文件的时间进行命名)
now = time.strftime("%Y-%m-%d-%H %M %S",time.localtime(time.time()))
filename = curpath+'/resultreport/'+now+'resultreport.html'withopen(filename,'wb')as fp:
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"测试报告",description=u"用例执行情况",verbosity=2)
suite = createsuite()# 调用测试套件
runner.run(suite)
2.结果
本文转载自: https://blog.csdn.net/qq_45058331/article/details/126614024
版权归原作者 潇湘夜雨. 所有, 如有侵权,请联系我们删除。
版权归原作者 潇湘夜雨. 所有, 如有侵权,请联系我们删除。