0


外卖点餐项目的测试

外卖点餐项目的测试

一、测试的流程

  • 测试计划: 1.第一天,用自动化测试Selenium测试登录、退出功能,以及页面是否可以正常分页展示 2.第二天,手动测试员工管理、分类管理、菜品管理、套餐管理的添加,删除,查询,修改功能
  • 测试设计和开发:编写测试用例如下
  • 测试的执行:如下
  • 报告评估如下:

二、测试用例的编写

在这里插入图片描述

三、自动化测试登录、退出功能

unittestDemo

from ddt import data,ddt,unpack,file_data
from selenium import webdriver
import time
import unittest
import os,sys,csv

defgetTxt(file_name):
    rows=[]
    path=sys.path[0]withopen(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
@ddtclassTestUnit(unittest.TestCase):#获取输出库驱动defsetUp(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'))@unpackdeftest_Login(self, value1, value2):
        driver = self.driver
        url = self.url
        driver.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_url
        try:
            self.assertEqual(url,"http://paulstrong.top:8080/backend/index.html", msg="登录失败")except:
            self.save_erroImage(self.driver,"error.png")@data(*getTxt('test_data.txt'))@unpackdeftest_outLogin(self,value1,value2):
        driver=self.driver
        url=self.url
        driver.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_url
        try:
            self.assertEqual(url,"http://paulstrong.top:8080/backend/page/login/login.html", msg="登录失败")except:
            self.save_erroImage(self.driver,"error.png")defsave_erroImage(self, driver, fileName):ifnot 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)deftearDown(self):
        self.driver.quit()if __name__=="__main__":
        unittest.main()

testSuit

import unittest
from test_demo import unittestDemo
defcreatSuit():# 测试套件 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 unittest

defcreatesuite():
    discovers = unittest.defaultTestLoader.discover("../demo", pattern="unittestD*.py", top_level_dir=None)print(discovers)return discovers

if __name__=="__main__":# 文件夹要创建在哪里
    curpath = sys.path[0]print(sys.path)print(sys.path[0])# 1,创建文件夹,创建的这个文件夹干什么ifnot 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'withopen(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来提升效率。


本文转载自: https://blog.csdn.net/weixin_45905779/article/details/122747900
版权归原作者 Paul. strong no fat 所有, 如有侵权,请联系我们删除。

“外卖点餐项目的测试”的评论:

还没有评论