赞
踩
测试使用的工具为LAMBDATEST,针对多种浏览器内核进行了测试。
浏览器内核 | 支持版本 |
---|---|
Blink | 100及以上 |
WebKit | 11及以上 |
Gecko | 80及以上 |
Trident | 不支持 |
浏览器 | 内核 |
---|---|
Chrome | Blink |
Microsoft Edge | Blink |
IE | Trident |
360、QQ 等国内浏览器 | Trident[兼容模式] / Blink[极速模式] |
Firefox | Gecko |
Safari | WebKit |
浏览器 | 版本 | 注册 | 登录 | 地图渲染 | 地图钉展示 | 地图钉添加 | 地图钉修改 | 地图钉删除 | 地图钉类别选择 | 地图放大缩小 | 个人信息修改 | 登出 | 密码修改 | 页面跳转 | 图片显示 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | 112.0.5615.138 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Edge | 112.0.1722.58 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Firefox | 112.0.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Safari | 16.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
采用ApiFox进行前端api测试。
在ApiFox测试工具中输入参数,向后端发送请求,后端会返回便于判断的处理信息。通过设置断言,判断后端返回值是否正确。
对于需要token的操作,可以使用ApiFox中全局变量的功能。编写完单个测试点,将多个测试点合并为测试用例,将测试用例合并为测试套件,进行综合测试。
由于ApiFox会真实的对数据库进行操作,因此测试时要尽量保证无后效性,测试用例一般是闭环设计。
对于地图点的测试流程如下:插入-查询-修改-删除
对于用户个人信息测试流程如下:登陆-查询-修改信息-修改密码-还原密码-登出
测试其余功能时,我们设置了一个永久有效的Token用于测试(Token非常复杂,不易泄露)
测试结果表明,所有api接口均能够正确传值且返回值均符合要求。
我们的网站主要有四个网页,我们针对这四个网页使用Google的Lighthouse插件进行了性能测试。该插件从以下几个方面对网页进行了评价:
在报告中,我们会根据报告侧重分析一些指标的可改进性。
性能 | 可访问性 | 最佳实践 | SEO | |
---|---|---|---|---|
登陆界面 | 87 | 83 | 83 | 73 |
注册界面 | 85 | 77 | 83 | 64 |
地图界面 | 87 | 84 | 83 | 73 |
个人信息界面 | 87 | 87 | 92 | 73 |
另外,对于SEO,LightHouse认为网页的robots.txt不合法;并且网页缺少meta描述标签。
对于上述的问题,在测试完成之后已经开始了陆续的改进,这些改进未必会更新到此文档中。
附上一张测试报告的截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-koqpQV8h-1682508153368)(null)]
后端API压力测试通过JMeter工具实现。
本测试选取两个具有代表性、现实场景访问次数可能最多的API测试,分别为用户登录API和主页获取所有地图钉API。
经测试,当线程并发数超过4000后,便会出现请求超时导致失败的现象:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EuegnQ6v-1682508153315)(null)]
同样,并发数超过4000后,服务器难以处理所有请求。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBk2HrRG-1682508153347)(null)]
由于前端路由内并没有可传递参数,所以不存在xss攻击的可能性
后端SpringBoot通过Mybatis方式操作数据库,利用MybatisX插件自动化生成对应SQL语句,格式如下:
<select id="findAllByEmail" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from user
where
u_email = #{email,jdbcType=VARCHAR}
</select>
可以看出,对于可能存在安全隐患的用户输入在SQL语句里以${}引用,确保了变量为SQL格式,也不会被当做SQL语句执行。
除了上述安全性测试外,我们还通过别的技术增强了应用的安全性:
SpringBoot利用腾讯云COS实现图床
Spring Security+JWT实现用户验证与授权
最后,附上本组进行修复时的Bug目录,该链接链向一个Notion文档:
Bug汇总
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。