
功能划分
如果一个功能同时涉及服务端和客户端的修改,首先从功能上就要分别对客户端和服务端分别进行测试。
测试准备阶段
尽量使用线上的服务器;如果需要搭建服务器则尽量保持跟线上或未来线上的服务器类型一致。
搭建测试服务器环境时,测试服务器的返回策略,尽量跟线上或未来线上的服务器端策略一致。
用例设计
写case的时候,详细了解客户端和服务端的逻辑后,要确认一下,之前定好的测试范围是否合理,是否有部分不需测试的逻辑可能会存在问题,如果有这种不确认的地方,需要再次确认测试范围;
要考虑不联网时,待测模块是否仍需支持某些功能;
执行阶段
1.1. 客户端关注
尝试连接时,不联网,要有超时
对于本地无连接的测试,一定要区分断网和禁用网卡,这两种情况不同。
下载过程中,网络情况不佳或者断网,要有超时,最好也有三次重连机制,重连的时间不宜过短建议20ms
文件过大,建议需要有断点续传逻辑
要验证各种网络错误环境,最起码要包括200、302、403、404、417、500、502等错误和服务器超时、本地超时
测试时需要关注,每条url请求是否支持302跳转
需要模仿502跳转,确保调整后,客户端能够正常运行
服务器返回文件类型需要关注:文件格式错误、Html格式文件、空文件、0字节的文件。
服务器返回文件时,文件的储存路径,空间,路径的读写权限、储存路径是否已经存在文件,存在文件的数据(0字节,其他类型的文件、损坏的文件、下载的文件不完整)
服务器端返回的url值的类型、长度的容错,服务器返回文件的内容:是否加密,参数值为中英文、简繁体、特殊符号、数字、空、缺省、零、小数、负值、超长、乱码等,参数缺省,规定下载的文件个数与下载的文件实际个数不匹配。
发送的url内容,参数值中的特殊符号、中文是否已经转义;
需要测试时关注,交互时配置文件的编码问题,例如要覆盖到ASCII、unicode、ANSI等编码。
还要注意测试时,交互时配置文件中的换行与回车换行的问题,要保证这两种都可以测试通过
要注意在低权限进程中,该功能能够正常进行
该交互是否会被安全软件拦截;如果要打开浏览器访问,还要检查是否会被浏览器拦截
客户端发送的请求中是否带具有特性的User-Agent(具体根据与开发的沟通结果来验证)
基本功能测试完毕后,需要进行跟服务器端的联调。
客户端与服务器联调时,要注意确认联调case,多跟开发沟通;
1.2. 服务器端关注
对于服务器来说,要进行压力测试
客户端、服务器端分别测试后,上线前要有联调,除了走主功能外、还要结合开发与运营的意见设计联调case
服务端需要考虑是否要做安全校验,以免被攻击
服务端和客户端均通过测试后,在上线前,需要客户端和服务端进行联调测试,确认服务端和客户端均ok
客户端发送请求的内容:是否加密,参数值为中英文、简繁体、特殊符号、数字、空、缺省、超长。
测试完成后
服务端上线后,如果有需要,需要验证服务端的服务正常上线,通过外网IP能够获取服务端的服务
公示客户端与服务器端交互时需要注意的相关事项及存在的风险,确保服务器端的策略能够与客户端正确匹配。