《Web测试囧事》——1.6 多次操作本该禁用的页面组件造成服务器出错
本节书摘来自华章计算机《Web测试囧事》一书中的第1章,第1.6节,作者 黄勇 雷辉 徐潇 杨雪敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.6 多次操作本该禁用的页面组件造成服务器出错对页面上的组件进行多次点击是测试人员经常使用的小技巧之一,通常小蔡在执行完基本测试用例之后,开始进行探索性测试时会使用这个技巧,并且利用这个测试技巧发现了不少问题。
这些问题主要集中在用户提交服务器请求后服务器进行处理的相关功能上,例如读取、保存、提交、删除等功能(见图1-12)。
小蔡发现如果网络速度比较慢或者产品本身性能不够好,在用户点击了这些功能按钮后,而页面刷新完成之前这段时间内,该功能按钮仍然可能被用户继续点击。即使有些页面上的按钮处于灰色不可用状态,但当你尝试点击这些灰色的按钮,会发现点击后仍然会给服务器端发送请求(见图1-13)。
这样带来了一系列问题,举例来说,对于保存功能,用户多次点击后会向后台发送多次请求,数据库中也会产生多条重复的数据,这样不仅会造成数据统计错误,更会给再次使用这些数据的人或程序造成很大的麻烦。一个更极端的例子是免密码支付的场景,当用户不小心多次点击支付按钮后,会给用户造成不小的损失;对于删除功能来说,多次点击“删除”按钮后,实际上第一个请求已经让数据库将对应的数据删除了,接下来的删除请求可能会造成后台程序的大量异常。
小蔡发现解决此类问题也很简单, 只需要开发人员在编写代码时注意,只允许对该类功能按钮操作一次,在用户操作之后,不仅需要把对应的功能按钮置灰,同时需要取消这些功能按钮上面绑定的事件响应处理机制。
通常小蔡除了会在小组的回顾会议上向开发人员分析这些问题产生的原因和避免方式,还在每张开发故事卡上明确地标注需要测试多次快速点击按钮的场景,这样可以让开发人员从意识上提高对这类缺陷的警惕,从而在编写代码时注意预防此类问题的发生。
LNMP架构下WEB服务器如何管理及优化内存? Ngnix+PHP-FPM的工作方式,似乎是LNMP架构最节省系统资源的工作方式。当然,具体的技术选型更多的应该参考自己想要实现的业务需求。
相关文章
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- 服务器Web性能测试主要包含四个方面
- 如何在 Ubuntu 下安装和配置 FTP 服务器
- Linux服务器上监控网络带宽的18个常用命令
- HTTP 笔记与总结(9)分块传输、持久链接 与 反向 ajax(comet / server push / 服务器推技术)
- 基于pythondetcp多个客户端连接服务器
- ubuntu 16.04 搭建git小型服务器
- 《大型网站服务器容量规划》——3.2 通过压力测试规划容量
- 《Nmap渗透测试指南》—第9章9.2节审计FTP服务器
- 《黑客秘笈——渗透测试实用指南(第2版)》—第1章1.3节建立其他的服务器
- Linux环境下Kafka的安装与使用(SpringBoot整合云服务器上的Kafka)
- Nginx 服务器配置
- 《PostgreSQL服务器编程》一一1.7 定制排序方法
- 给网站更换服务器需要注意什么?
- 崛起的中国服务器市场迎来旺盛的SPEC测试需求
- 崛起的中国服务器市场迎来旺盛的SPEC测试需求
- Nginx(三):负载均衡策略 与 Nginx静态服务器
- 用java在客户端读取mongodb中的数据并发送至服务器
- 聚焦服务器行业,看美国独立服务器优势
- Node.js 创建HTTP服务器和GET/POST请求
- HTTPS服务器配置