最近我所参与的某一个项目进入了内测阶段。QA也只对现有系统进行功能性测试,性能测试还没开始做。在这个项目,有一个模块,主要功能是接收到用户的请求后,调用ImageService服务,生成一个明信片返回给用户。这个看似简单的业务逻辑,内部实现却不简单,其操作有获取用户的地理位置,从DFS下载邮戳模板文件,从DDB中获取邮戳模板元数据,根据用户的地理位置、请求时间生成邮戳,上传邮戳至DFS,
从DFS下载明信片模板文件,合并邮戳与明信片模板文件,生成明信片,上传明信片至DFS。当然,为了保证性能,这其中还包含不少的Cache处理等,才能保证每次请求都能在100ms左右响应。
由于,项目已经进入内测,而且bug主要是前端的bug,和我这个后端的开发没有关系,因而相对工作比较轻松。于是,我就写了个小的测试程序,其原理与《教你如何从Google Map爬数据》一文是一样的,就是开一个线程池,每一个线程的任务就是访问明信片服务。但是,当我把线程池的大小开到32时,也就是有32个线程