外卖点餐项目的测试
外卖点餐项目的测试
外卖点餐项目的测试
- 一、测试的流程
- 二、测试用例的编写
- 三、自动化测试登录、退出功能
- 四、测试报告
一、测试的流程
- 测试计划:
1.第一天,用自动化测试Selenium测试登录、退出功能,以及页面是否可以正常分页展示
2.第二天,手动测试员工管理、分类管理、菜品管理、套餐管理的添加,删除,查询,修改功能 - 测试设计和开发:编写测试用例如下
- 测试的执行:如下
- 报告评估如下:
二、测试用例的编写
三、自动化测试登录、退出功能
unittestDemo
from ddt import data,ddt,unpack,file_data
from selenium import webdriver
import time
import unittest
import os,sys,csvdef getTxt(file_name):rows=[]path=sys.path[0]with open(path+'\\'+file_name,'rt') 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
class TestUnit(unittest.TestCase):#获取输出库驱动def setUp(self):self.driver=webdriver.Chrome()self.driver.maximize_window()self.url="http://paulstrong.top:8080/backend/page/login/login.html"self.driver.get(self.url)time.sleep(3)@data(*getTxt('test_data.txt'))@unpackdef test_Login(self, value1, value2):driver = self.driverurl = self.urldriver.get(url)username = driver.find_element_by_xpath("/html/body/div/div/div/form/div[2]/div/div/input")password = driver.find_element_by_xpath("/html/body/div/div/div/form/div[3]/div/div/input")username.clear()username.send_keys(value1)time.sleep(2)password.clear()password.send_keys(value2)driver.find_element_by_class_name("login-btn").click()time.sleep(1)url = driver.current_urltry:self.assertEqual(url, "http://paulstrong.top:8080/backend/index.html", msg="登录失败")except:self.save_erroImage(self.driver, "error.png")@data(*getTxt('test_data.txt'))@unpackdef test_outLogin(self,value1,value2):driver=self.driverurl=self.urldriver.get(url)username=driver.find_element_by_xpath("/html/body/div/div/div/form/div[2]/div/div/input")password=driver.find_element_by_xpath("/html/body/div/div/div/form/div[3]/div/div/input")username.clear()username.send_keys(value1)time.sleep(2)password.clear()password.send_keys(value2)driver.find_element_by_class_name("login-btn").click()time.sleep(1)driver.find_element_by_class_name("outLogin").click()time.sleep(1)url=driver.current_urltry:self.assertEqual(url, "http://paulstrong.top:8080/backend/page/login/login.html", msg="登录失败")except:self.save_erroImage(self.driver,"error.png")def save_erroImage(self, driver, fileName):if not os.path.exists("./image"):os.makedirs("./image")now=time.strftime("%Y%m%d-%H%M%S",time.localtime(time.time()))driver.get_screenshot_as_file("./image/"+now+"-"+fileName)def tearDown(self):self.driver.quit()if __name__=="__main__":unittest.main()
testSuit
import unittest
from test_demo import unittestDemo
def creatSuit():# 测试套件 disvover#discover(dir,pattern,top_level_dir=None)discover = unittest.defaultTestLoader.discover("../demo",pattern="unittestD*.py",top_level_dir=None)return discover
if __name__=="__main__":suite=creatSuit()runner=unittest.TextTestRunner()runner.run(suite)
html自动生成
import HTMLTestRunner
import os
import sys
import time
import unittestdef createsuite():discovers = unittest.defaultTestLoader.discover("../demo", pattern="unittestD*.py", top_level_dir=None)print(discovers)return discoversif __name__=="__main__":# 文件夹要创建在哪里curpath = sys.path[0]print(sys.path)print(sys.path[0])# 1,创建文件夹,创建的这个文件夹干什么if not os.path.exists(curpath+'/resultreport'):os.makedirs(curpath+'/resultreport')# 2,文件夹的命名,不能让名称重复# 时间 时分秒 ——》名称绝对不会重复now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))print(now)print(time.time())print(time.localtime(time.time()))# 文件名filename = curpath + '/resultreport/'+ now + 'resultreport.html'with open(filename, 'wb') as fp:runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"测试报告",description=u"用例执行情况", verbosity=2)suite = createsuite()runner.run(suite)
-
登录功能的测试
1.密码用户名全部正确的情况下
2.密码位数不够的情况下- 生成的错误截图
3.用户名不存在情况下
- 错误截图
4.密码错位情况下
- 生成的错误截图
-
退出功能的测试
(找到退出的元素然后点击)
四、测试报告
本次测试实在windows操作系统上的谷歌浏览器,利用python编写自动化脚本和手动测试,对点餐网站的基本功能进行测试,总共测试用例36条,通过33条,发现3处BUG,通过率为92%,核心功能测试全部通过,主要BUG在页面展示、兼容性和性能方面,可以采用Redis来提升效率。