欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【测试】pipeDemo 前端后端接口功能白盒测试 04/12/12

【测试】pipeDemo 前端后端接口功能白盒测试 04/12/12

2024/12/22 0:26:49 来源:https://blog.csdn.net/qq_43768851/article/details/144414078  浏览:    关键词:【测试】pipeDemo 前端后端接口功能白盒测试 04/12/12

总览

1.登录测试
2.页面测试 -
2.1 钢管管理界面
2.2 分配管理界面
2.3 流转管理界面
2.4 员工管理界面
2.5 部门管理界面
2.6 退出系统界面(clear cache of cookies)

一、登录测试

1.登录界面测试

期待效果:正常显示
实际效果:Y

在这里插入图片描述

2.登录功能测试

2.1 正常登录
期待效果:正常登录
实际效果:Y

在这里插入图片描述

2.2 错误的用户名或密码
期待效果:无法登陆,且给出文字 TIPS
实际效果:Y

在这里插入图片描述

在这里插入图片描述

二、钢管管理界面

1.显示 && QRCODE 实时渲染

期待效果:正常显示数据 && QRCODE
实际效果:Y

在这里插入图片描述

2.新增功能

期待效果:正常新增,且QRCODE正常生成&&更新
实际效果:Y

在这里插入图片描述

期待效果:错误校验正常
实际效果:Y

在这里插入图片描述

3.删除功能

3.1 单行删除
期待效果:删除正常,数据库查看确认操作已完成
实际效果:Y

在这里插入图片描述

– 分割线 –

在这里插入图片描述

– 分割线 –

在这里插入图片描述

3.2 多行删除
期待效果:删除正常,数据库查看确认操作已完成
实际效果:Y

在这里插入图片描述

– 分割线 –

在这里插入图片描述

– 分割线 –

在这里插入图片描述

4.下载(批量下载)二维码功能

期待效果:下载正常,二维码有效显示和存储 ID String
实际效果:Y

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.搜索功能

期待效果 && 实际效果:
根据 ID 搜索:Y

根据 材质 搜索:N
(此无用字段需要删除)

在这里插入图片描述

根据 钢管编号 搜索:Y

在这里插入图片描述

根据 流转次数 搜索:Y

在这里插入图片描述

根据 维护日期 搜索:Y

在这里插入图片描述

根据 规格型号 搜索:Y

在这里插入图片描述

根据 状态 搜索:Y

在这里插入图片描述

根据 当前所在部门 搜索:Y

在这里插入图片描述

三、分配管理界面

1.分配管理未开放

此功能未开放。一期的试用功能页面。

四、流转管理界面

1.显示效果

期待效果:显示正常行列 table
实际效果:Y

在这里插入图片描述

2.微信端插入测试

期待效果:基础功能:登录、选择井号、扫描二维码识别管材返回管材信息
实际效果:Y

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

期待效果:上传功能正常使用,不重复上传产生重复数据
实际效果:Y(甲方要求已实现)

测试方法:4:49、4:50,在同一界面多次点击上传,数据未重复录入数据库为合格:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.搜索功能

期待效果 && 实际效果:
根据 记录号 搜索:Y

在这里插入图片描述

根据 钢管编号 搜索:Y

在这里插入图片描述

根据 操作 搜索:Y

在这里插入图片描述

根据 操作人 搜索:Y

在这里插入图片描述

4.标准流程上传测试

期待效果:
4.1 在经过一整个流转流程后,相关管材流转次数 + 1
4.2 每个过程中,操作人改变、操作状态改变、操作时间改变
4.3 每个过程中,管材状态改变、管材当前所在部门改变(PIPE表,PIPE界面)
实际效果:Y

测试流程:
首先创建4个测试人员,分别为4个类型部门工作人员:
在这里插入图片描述
测试的管子选用:
ID == 41,PIPE_ID == 3080,
状态 == 新录入(default)
当前所在部门 == 系统新增(default)
在这里插入图片描述

第一步流程:
新钢管入库,库房管理员进行入库扫码操作。

在这里插入图片描述

如下图,入库成功。

在这里插入图片描述

如下图,PIPE 页面中 管材状态改变、管材当前所在部门改变成功(已入库)。

在这里插入图片描述

第二步流程:
钢管开始运输至井站,运输部门人员进行出库-开始运输扫码操作。
(选择当前部门为“库房”,从库房开始运输)

在这里插入图片描述
如下图,开始运输(库房 -> 井站)成功。

在这里插入图片描述

如下图,PIPE 页面中 管材状态改变、管材当前所在部门改变成功(运输中)。

在这里插入图片描述

第三步流程:
钢管开始运输至井站,施工队人员 进行开始施工扫码操作。
(选择当前部门为“井站”,在井站开始施工)

在这里插入图片描述

如下图,(井站)开始使用 成功。

在这里插入图片描述

如下图,PIPE 页面中 管材状态改变、管材当前所在部门改变成功(使用中)。

在这里插入图片描述

第四步流程:
如果此时施工队干完活了,那么管子可以留在井站,让井站工作人员扫描,准备进行回收(回到库房)。
(选择当前部门为“井站”,在井站开始确认需要回收的钢管)

在这里插入图片描述

如下图,(井站)开始闲置 成功。

在这里插入图片描述

如下图,PIPE 页面中 管材状态改变、管材当前所在部门改变成功(闲置中)。

在这里插入图片描述

注意,如果此时,施工队直接联系司机,将钢管从当前 井站A 转移至下一个 井站B,
那么,不需要有闲置状态,当前井站A的工作人员也无需扫码。

司机扫码后,钢管的运输状态将从“使用中”重新且直接变成“运输中”,
钢管此时不会被回收回库房,而是直接被从 井站A 运送到 井站B 继续工作。

第五步流程:
重复“开始运输”流程

第六步流程:
重复“开始入库”流程

查看管材的流转次数是否增加:
已经增加,成功。

管材流转次数的增加逻辑是:每经历过 1次 “使用中” 状态,就增加一次流转次数,而非走完整个流程 —— 因为在一整个流程中可能出现多次使用,无法统计磨损!

五、员工管理界面

1.显示效果

期待效果:显示正常行列 table
实际效果:Y

在这里插入图片描述

2.新增功能

期待效果:正常添加,数据库有反馈
实际效果:Y

在这里插入图片描述
在这里插入图片描述

3.删除(批量删除)功能

期待效果:正常删除,数据库有反馈
实际效果:N(后端code:500)
修复效果:Y

在这里插入图片描述

报错内容:

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33eec48a] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@1328500488 wrapping oracle.jdbc.driver.T4CConnection@7ea2ef45] will not be managed by Spring
==>  Preparing: SELECT id,NAME,TEL,DEPARTMENT,DEPARTMENT_TYPE,JOB,ORDER_ADMIN,ADD_TIME,USERNAME,PASSWORD FROM STAFF WHERE id=?
==> Parameters: 1(Integer)
<==    Columns: ID, NAME, TEL, DEPARTMENT, DEPARTMENT_TYPE, JOB, ORDER_ADMIN, ADD_TIME, USERNAME, PASSWORD
<==        Row: 1, JohnDoe, 1234567890, IT, Tech, 员工, Admin, 2024-11-23 02:09:07, johndoe, password123
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33eec48a]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79800608] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@959342055 wrapping oracle.jdbc.driver.T4CConnection@7ea2ef45] will not be managed by Spring
==>  Preparing: SELECT id,DEPARTMENT_NAME,DEPARTMENT_TYPE,NUM_OF_STAFF,ADD_TIME FROM DEPARTMENT WHERE (DEPARTMENT_NAME = ?)
==> Parameters: IT(String)
<==      Total: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79800608]
2024-12-12 04:13:56.149 ERROR 16181 --- [nio-8181-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root causejava.lang.NullPointerException: nullat com.gangguan.pipedemo.service.impl.DepartmentServiceImpl.subNumOfStaff(DepartmentServiceImpl.java:124) ~[classes!/:na]at com.gangguan.pipedemo.service.impl.DepartmentServiceImpl$$FastClassBySpringCGLIB$$fa700c38.invoke(<generated>) ~[classes!/:na]at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687) ~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at com.gangguan.pipedemo.service.impl.DepartmentServiceImpl$$EnhancerBySpringCGLIB$$abc16e56.subNumOfStaff(<generated>) ~[classes!/:na]at com.gangguan.pipedemo.controller.StaffController.deleteByIds(StaffController.java:83) ~[classes!/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_412]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_412]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_412]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_412]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.41.jar!/:4.0.FR]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.41.jar!/:4.0.FR]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_412]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_412]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.41.jar!/:9.0.41]at java.lang.Thread.run(Thread.java:750) [na:1.8.0_412]

修复:
报错原因是传入了 null 引用,因为在最初插入数据的时候未使用新增,所以删除数据查看到未能匹配的对象值。
数据库删除初始测试数据后,删除后续添加的“zjl”和“ljj”,能够正常删除:

在这里插入图片描述

4.搜索功能

期待效果 && 实际效果:
根据 编号 搜索:Y

在这里插入图片描述

根据 姓名 搜索:Y

在这里插入图片描述

根据 归属部门 搜索:Y

在这里插入图片描述

根据 职务 搜索:Y

在这里插入图片描述

根据 管理端权限 搜索:Y

在这里插入图片描述

根据 添加时间 搜索:Y
(请注意,此处 date-selecter 未注明 text,但是效果仍是 table 中唯一的 date 数据)

在这里插入图片描述

六、部门管理界面

1.显示效果

期待效果:显示正常行列 table
实际效果:Y

在这里插入图片描述

2.新增功能

期待效果:如果不存在部门则新增成功,若存在,则弹出 poper 提示用户
实际效果:Y

在这里插入图片描述

3.删除(多选删除)功能

期待效果:正常删除,且数据库有反馈;若此部门人数不为0,则无法删除成功!
实际效果:Y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.搜索功能

期待效果 && 实际效果:
根据 部门编号 搜索:Y
在这里插入图片描述
根据 部门名称 搜索:Y

在这里插入图片描述

根据 部门名称 搜索:Y

在这里插入图片描述
根据 添加时间 搜索:Y
(请注意,此处 date-selecter 未注明 text,但是效果仍是 table 中唯一的 date 数据)

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com