线上图片服务器项目测试

测试项目简介:该项目为线上图片服务器测试,图片服务器主要实现的功能为图片的上传、删除、放大和进行列表展示。

一、待测项目功能展示

(根据与开发人员共同完成项目的需求分析实现)

1.主页(图片列表页)

2.从本机上传图片

 3.点击图片列表的任一图片,放大

4.点击右侧按钮或左侧按钮,切换图片

5. 删除图片,跳出弹框提示

 6.删除成功后自动刷新列表

 

 二、根据需求编写测试用例

(这里我使用了 Xmind 使用版进行测试用例的编写,较为直观,也方便后期汇总为文档)

 

三、测试

按照开发阶段化划分

项目测试顺序:

单元测试——功能测试——自动化测试,性能测试

1.单元测试

框架:Junit 框架

测试方法:白盒测试,主要对代码的路径覆盖、错误处理等进行测试。

(这里只对imageDAO层进行了单元测试)

代码如下:

package dao;

import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.*;

public class ImageDaoTest {

    @Before
    public void before(){
        System.out.println("----------before--------------");
    }

    @After
    public void after(){
        System.out.println("----------after--------------");
    }
    @Ignore
    @Test
    public void insert() {
        //准备测试数据
        ImageDao imageDao = new ImageDao();
        Image image = new Image();

        image.setImageName("test.png");
        image.setUploadTime("20200629");
        image.setPath("./image/fbab242a577efdf0c530a27a92e0c255");
        image.setMd5("fbab242a577efdf0c530a27a92e0c255");
        image.setContentType("image/png");
        image.setSize(45197);

        //测试,在数据库中可查看是否插入成功
        imageDao.insert(image);
    }

    @Test
    public void selectAll() {
        ImageDao imageDao = new ImageDao();
        List<Image> lists = imageDao.selectAll();
        System.out.println(lists.size());
        System.out.println();
        for (Image image:lists) {
            System.out.println("imageId = " + image.getImageId()+" "+"imageName = "+image.getImageName());
        }
    }

    @Test
    public void selectOne() {
        ImageDao imageDao = new ImageDao();
        try {
            Image image = imageDao.selectOne(2);

            System.out.println(image.getImageName());
            System.out.println(image.getImageId());
            System.out.println(image.getSize());
            System.out.println(image.getMd5());
        }catch (Exception e){
            System.out.println("查询失败,imageId 不存在!!!");
        }
    }

    @Test
    public void delete() {
        ImageDao imageDao = new ImageDao();
        List<Image> lists1 = imageDao.selectAll();
        System.out.println("删除前图片容量" + lists1.size());
        imageDao.delete(54);
        List<Image> lists2 = imageDao.selectAll();
        System.out.println("删除后图片容量" + lists2.size());
        if(lists1.size()>lists2.size()) {
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败,imageId 不存在!!!");
        }
    }

    @Test
    public void selectByMd5() {
        ImageDao imageDao = new ImageDao();
        try {
            Image image = imageDao.selectByMd5("fbab242a577efdf0c530a27a92e0c255");
            System.out.println(image.getImageId());
            System.out.println(image.getImageName());
            System.out.println(image.getPath());
        } catch (Exception e) {
            System.out.println("查询失败,Md5 不存在!!!");
        }
    }
}

2.功能测试

测试方法:黑盒测试

(这里按照上面写的测试用例进行了手工测试)

3.自动化测试

测试工具:selenium

脚本语言:Python

(这里简单测了一下上传、删除和查看)

import HTMLTestRunner
from selenium import webdriver
import time
import unittest
import os
import sys
from selenium.common.exceptions import NoAlertPresentException
from ddt import ddt, file_data, unpack, data


@ddt
class testCase1(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.url = "http://这里是服务器ip地址/DrawingBed_war/"
        self.driver.get(self.url)
        self.driver.maximize_window()
        time.sleep(3)


    def tearDown(self):
        self.driver.quit()

    #删除
    def test_delete(self):
        driver = self.driver
        driver.get(self.url)
        time.sleep(3)
        driver.find_element_by_xpath("//*[@id='container']/div[1]/button").click()
        time.sleep(3)
        driver.switch_to.alert.accept()
        time.sleep(3)
        driver.switch_to.alert.accept()

    #上传
    def test_upload(self):
        driver = self.driver
        driver.get(self.url)
        time.sleep(3)
        driver.find_element_by_xpath("//*[@id='blog-collapse']/form/div[1]/input").send_keys(r"C:\Users\PC\Desktop\666.jpeg")
        time.sleep(3)
        driver.find_element_by_xpath("//*[@id='blog-collapse']/form/div[2]/input").click()
        time.sleep(3)

    #查看
    def test_select(self):
        driver = self.driver
        driver.get(self.url)
        time.sleep(3)
        driver.find_element_by_xpath("//*[@id='container']/div[1]/img").click()
        time.sleep(3)

    if __name__ == '__main__':
        unittest.main(verbosity=0)

四、bug汇总

1.删除图片后刷新页面图片依旧存在
原因:删除图片未删除干净(上传时本地还有一份图片数据,删除时未删除)

2.上传已删除过的图片显示写失败,再次刷新页面才会显图片
原因:删除图片未删除干净(上传时本地还有一份图片数据,删除时未删除)

3.上传非图片的文件上传成功
建议:上传时进行判断

4.上传空文件上传成功
建议:上传时进行判断

5.全部图片在同一个页面,图片过多时,对服务器压力过大
原因:未分页处理,服务器性能差

6.图片名称过长时未折行展示,影响美观
建议:折行展示或只显示前面部分长度,使用“展开”,显示全部名称

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值