1. 场景描述

测试网站某页面注册表单,该表单包含若干个文本输入框以及两个密码输入框:登录密码和确认密码。登录密码只能由数字或字母组成,并且长度在6-20个字符之间,确认密码必须与登录密码完全一致,当满足以上所有条件后,才能成功提交注册表单,否则提交时将在不符合要求的输入框右侧提示对应的错误信息。


2. 问题说明

在Chrome浏览器下对登录密码和确认密码输入框进行反复输入测试时,发现浏览器的CPU占有率会不断上升,导致页面出现卡顿、无响应的情况,但是在相同浏览器下测试其他文本输入框或在其他浏览器下测试密码输入框却没有发生此类问题。因此,可以怀疑问题是由与密码输入框有关的JavaScript脚本导致的。


3. 测试方法

Chrome浏览器开发者工具可以记录某段时间内单个JavaScript函数的CPU使用情况。按下键盘上的F12打开开发者工具,切换到Profiles页面,如下所示:

wKioL1Oql23y_iYOAAIWz5WQIOg374.jpg

选中Collect JavaScript CPU Profile选项,点击Start按钮开始记录,此时再用同样的操作测试密码输入框,当发现CPU使用率上升时,点击Stop停止记录。之后再查看开发者工具左侧,发现Chrome创建了一个记录文件,点击查看文件内容,找到百分比最高的一个JavaScript函数,如下所示:

wKiom1Oql63AFNMJAAM0tUmGGbU934.jpg

经过查询,发现函数所在的JavaScript文件并不属于网站本身,而是与Chrome插件有关。于是通过搜索引擎查询到文件源于QQ管家的Chrome插件,该插件会在输入密码时进行一些安全相关的检查,当操作频率较高时会引起CPU使用率短时间内的飙升。于是打开Chrome的扩展程序管理器,找到QQ管家插件并将其停用,随后再次进行测试证实问题已解决,如下所示:

wKioL1Oql6vjm2OPAADRnLvRjV0285.jpg