
4

外卖点餐项目的测试
source link: https://blog.csdn.net/weixin_45905779/article/details/122747900
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、测试的流程
- 测试计划:
1.第一天,用自动化测试Selenium测试登录、退出功能,以及页面是否可以正常分页展示
2.第二天,手动测试员工管理、分类管理、菜品管理、套餐管理的添加,删除,查询,修改功能 - 测试设计和开发:编写测试用例如下
- 测试的执行:如下
- 报告评估如下:
二、测试用例的编写
三、自动化测试登录、退出功能
unittestDemo
from ddt import data,ddt,unpack,file_data
from selenium import webdriver
import time
import unittest
import os,sys,csv
def 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'))
@unpack
def test_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'))
@unpack
def test_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")
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 unittest
def createsuite():
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,创建文件夹,创建的这个文件夹干什么
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来提升效率。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK