IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 线上图片服务器项目测试 -> 正文阅读

[开发测试]线上图片服务器项目测试

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

一、待测项目功能展示

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

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.图片名称过长时未折行展示,影响美观
建议:折行展示或只显示前面部分长度,使用“展开”,显示全部名称

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:01:59  更:2022-02-26 12:02:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:49:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码