【Beta】Phylab 测试报告
PhyLab Beta 测试报告
测试中发现的bug
Beta阶段新Bug
Bug | 可能原因 |
---|---|
markdown生成的报告可能溢出显示框 | 表格过长,显示框未设置横向溢出 |
移动端实验区无法评论 | 移动端社区未接入导致无法评论 |
移动端社区不能登陆 | 社区密码并不是用户设置的密码 |
在社区设置头像后无法在用户界面上传头像 社区的头像在用户界面不会显示 |
社区头像路径与用户界面头像路径冲突 |
移动端用户注册收不到邮件 | 社区注册接口移动端与pc端不同 |
设计性实验页面移动端隐藏答案有延迟 | 移动端浏览器点击事件与pc端不同 |
Alpha未发现Bug
Bug | 可能原因 |
---|---|
控制台测试/实验界面生成报告错误信息可能无法返回 | 返回的信息中包含了非utf8编码字符,导致laravel抛出异常 |
遗留Bug
Bug | 可能原因 |
---|---|
实验区域发布评论,如果需要验证码,无法填写 | 评论频率过快,实验区未接入验证码系统 |
工具页面,手机端画面崩坏 | 使用了手机上无法显示的前端库 |
手机社区资料修改没有保存按钮 | 排版问题 |
某些浏览器(如Edge)下个人信息无法修改 | 未知,可能与兼容性有关 |
控制台编辑器有时需要点击才能显示内容 | 与编辑器模块刷新有关 |
用户在未进行邮箱验证情况下仍可能登入社区,但此时社区功能并不能完全使用 | 未知,可能与社区模块有关 |
逐差法小工具输入框有误 | 对逐差法理解错误 |
注册界面的年级信息没有关联 | 数据库设置有误 |
实验和社区界登出不同步 | 登出调用失败 |
针对新功能的场景测试
典型用户个人信息
场景测试1:Markdown报告生成&移动端体验
- 典型用户:小王
- 用户的需求/迫切需要解决的问题:
- 做实验的时候想用实验网站生成一下实验数据,看看自己的实验结果是否靠谱
- 原有网站无法在移动端生成和查看报告。
- 生成latex报告太慢了,但小王只想看看其中某几个数对不对。
- 场景描述:
- 小王在做实验的过程中记录了大量的数据,但对实验的过程很没底,想知道数据是否正确。
- 小王打开了物理实验网站,顺利登陆并进入实验报告区
- 小王正确选择了自己正在做的实验,并输入了所有的数据
- 小王点击生成实验报告,选择了“Markdown”报告生成,报告在几秒内生成完成并提示小王“生成成功”
- 小王点击查看实验报告按钮,浏览器新打开了一个页面显示了完整的数据报告。
场景测试2:设计性实验复习
- 典型用户:小李
- 用户的需求/迫切需要解决的问题:
- 快进入设计性实验考试了,想查找往届的资料复习。
- 复习pdf太长了,且对着pdf复习效果一般。
- 场景描述:
- 小李从我们的宣传中得知该物理实验网站,很是兴奋,回到宿舍后开启电脑,看到查看设计性实验复习部分不需要注册,便直接进入了该页面。
- 小李说,今天要从光学实验开始复习了,于是选择了G01号实验,页面显示了G01的复习攻略。
- 小李在预览报告的过程中依次用鼠标点击虚线部分得到答案,在全部预览一次后小李点击”清空答案”将所有答案隐藏起来。
- 小李完成了G01的复习,又选择了其他实验开始复习。在外的时候小李打开手机也可以查看实验攻略。
回归测试
本阶段我们新增了Markdown(html)报告生成的功能,这部分是在原有latex报告生成的基础上增加的,而其他新功能/改进并没有对原有接口造成影响(设计性实验新增路由,修改密码和上传头像分别是单独的控制器)。因此主要回测的部分是latex功能是否正常。
Alpha阶段生成报告的接口是/report/create
,本阶段我们将原有接口改为/report/createTex/
并新增接口/report/createMD
,两个接口分别对应原来latex部分的控制器以及新的markdown报告控制器。本阶段我们在开发此功能的同时为本学期新增的4个实验增加了相应的markdown报告模板。
以下是我们针对markdown报告生成以及latex报告生成的测试矩阵
机型 | 报告生成方式选择 | 2111 markdown生成 | 2141 markdown生成 | 2161 markdown生成 | 2201 markdown生成 | 2161 latex生成 | 2201 latex生成 | markdown生成结果显示 | 缺少markdown模板报错 |
---|---|---|---|---|---|---|---|---|---|
thinkpad t580 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
联想小新Air14 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无 |
Dell Inspiron15 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常,查看不完整,最右边看不到 | 正常 |
Dell G3 (chrome) | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
包括之后在性能测试部分中我们也分别测试了新的markdown报告生成接口和老的latex报告生成接口,原有的接口是正常的。
测试矩阵
PC端测试
机型 | 报告生成方式选择 | 2111 markdown生成 | 2141 markdown生成 | 2161 markdown生成 | 2201 markdown生成 | 2161 latex生成 | 2201 latex生成 | markdown生成结果显示 | 缺少markdown模板报错 | 修改密码 | 头像上传 | 设计性实验界面 | 设计性实验查看/隐藏答案 | 设计性实验清除答案按钮 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
thinkpad t580 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常显示 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
联想小新Air14 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无 | 正常 | 正常 | 正常 | 正常 | 正常 |
Dell Inspiron15 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常,查看不完整,最右边看不到 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Dell G3 (chrome) | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
移动端测试
机型 | 用户注册 | 用户登陆 | 主页显示 | 实验数据输入 | 报告生成方式选择 | latex报告生成 | markdown报告生成 | 查看报告生成结果 | 实验评论 | 用户个人信息修改 | 修改密码 | 头像上传 | 设计性实验界面 | 设计性实验查看/隐藏答案 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iPhone 7/Safari(周博闻) | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无法评论 | 正常 | 正常 | 正常 | 正常 | 显示答案正常,隐藏答案需要等待下一次点击事件 |
iPhone 6s/Safari(樊子康) | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无法评论 | 正常 | 正常 | 失败 | 正常 | 显示正常,隐藏有问题 |
荣耀8x chrome(殷刘霄羽) | qq、buaa邮箱和outlook都没收到 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无法评论 | 正常 | 正常 | 正常 | 正常 | 显示正常,隐藏有问题,没有清空答案 | |
iPhone 6/Safari(何雨峰) | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无法评论 | 更新失败 | 正常 | 正常 | 正常 | 显示正常,隐藏有问题 |
荣耀8x (王尖兵) | qq、buaa邮箱没收到 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 无法评论 | 正常 | 正常 | 正常 | 正常 | 显示正常,隐藏有问题 |
Beta 版本的出口条件
与此同时我们也计划在Beta阶段重构网站的部分功能,以提升运行性能,更好地服务于本学期以及将来需要做实验的同学们。初步计划的重构包括:以Markdown/html代替Latex/PDF(或先并存),优化移动端使用体验。
这是Alpha阶段测试报告结尾部分我们对Beta阶段的计划,两大主要功能/改进:Markdown报告生成和移动端体验优化。除此之外考虑到设计性实验考试即将开始以及综合实验部分即将结束,我们也考虑放缓增加新的综合实验内容而新增设计性实验复习模块。
本阶段的出口条件是
Markdown报告生成接口正常可用,本学期新增的实验能够生成两种类型的报告。移动端能够完成普通用户对网站的基本使用:注册登陆、生成实验报告、修改个人信息等。新增设计性实验页面,并尽可能增加其中的内容
目前来看网站基本达到了出口条件:
- 本学期新增的四个实验均可以使用Markdown模板生成Html报告,原有实验Latex模板报告生成不受影响。
- 移动端可以注册登陆(某些机型不能收到注册邮件),可以生成报告并以合适的方式查看(新开Tab,而不是堆在页面上)。
- 新增了设计性实验复习页面,并初步上线了所有的设计性实验(共8个)。
- 同时网站还修改了一些问题,目前修改密码和头像上传接口可以使用了。
在软工方面我们本阶段尝试单元测试并有了不小的进展,同时在编码过程中也对已有的一些配置进行了解耦。但仍有部分测试没有完成,部署方式也需要优化,因此下个阶段我们团队目标主要以提升软工质量为主。
单元测试
本阶段我们对上一阶段的控制台接口以及本阶段的设计性实验接口进行了单元测试。撰写测试踩了很多的坑,因此不久后也即将有一篇关于Laravel框架单元测试的技术博客。
测试结果如下:
仍有一些接口没有被测试,因此下个阶段我们将补全剩余接口的单元测试。
性能测试
本阶段新增的Markdown报告生成目的就是为了解决Latex报告生成速度慢,占用资源多的缺陷,为了直观展示两者性能上的差异,我们使用Postman和Jmeter对两个接口分别进行了测试
测试环境:阿里云1c2g云主机
单次报告生成速度
我们使用Postman分别对两个接口进行连续生成100次报告的测试。
测试结果如下:
接口 | 总用时 | 平均用时 |
---|---|---|
Markdown | 39841ms (39.841s) | 398ms |
Latex | 116035ms (116.035s) | 1160ms |
Markdown生成一个报告用时约是Latex接口的34%左右。
并发压力测试
由于Postman仅能进行串行的测试,我们使用Jmeter对接口进行并发压力测试。
根据本项目第一届同学们测试的结果(链接),1c2g的服务器约能承受30人同时生成Latex报告。
以下时间单位为ms
1s突发测试
并发线程数:30
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
TexTest | 30 | 27298 | 28891 | 29771 | 29781 | 29832 | 22887 | 29832 | 0.00% | 0.97879 | 12.21 | 1.11 |
MDtest | 30 | 10499 | 11874 | 12495 | 12508 | 12592 | 6441 | 12592 | 0.00% | 2.24115 | 3.01 | 2.53 |
并发线程数:50
Latex接口运行本测试失败,生成了12个报告后服务器宕机。
Markdown接口运行正常
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MDtest | 50 | 20086 | 20982 | 22123 | 22135 | 22209 | 16458 | 22209 | 0.00% | 2.16939 | 2.91 | 2.45 |
60s压力测试
Markdown接口:在60s内均匀地产生180个线程发起请求:
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MDtest | 180 | 23846 | 27389 | 35322 | 35542 | 35861 | 542 | 35953 | 0.00% | 2.15543 | 2.9 | 2.44 |
Latex接口:在60s内均匀地产生90个线程发起请求:
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
TexTest | 90 | 60618 | 84905 | 98235 | 99235 | 102162 | 307 | 102856 | 10.00% | 0.67097 | 6.4 | 0.74 |
注意虽然Latex接口在Jmeter中返回的错误是10%,但部分返回http 200的接口实际上返回信息是“fail”,统计了服务器上生成的pdf个数为:68,既真实错误率为24.44%。
尝试以测试Markdown接口的参数测试Latex接口,同样导致了服务器宕机。
结论
以上测试可以看出,Markdown接口无论是在单次生成速度还是并发生成的资源占用和速度上,相比Latex接口均有巨大的优势。因此两者的适用范围也不同,在需要生成美观、规范的报告时可以选用Latex模板,而仅仅查看数据结果时可以使用Markdown模板。