Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网站压力测试 #17

Open
Dream4ever opened this issue May 24, 2018 · 0 comments
Open

网站压力测试 #17

Dream4ever opened this issue May 24, 2018 · 0 comments
Labels
Back-end Where data really come and go Software About installation ande usage

Comments

@Dream4ever
Copy link
Owner

Dream4ever commented May 24, 2018

需求描述

因业务需要,需对考试系统进行压力测试。

方案调研

流量分析

压力测试

  • 选出一款用于对网站进行压力测试的工具。
  • 对网站进行压测,查看前端、后端优化前后网站性能差异。

入选方案

以列表形式记录入选的方案。

应用过程

阅读资料

先把 https://github.com/Dream4ever/Coding-Life/blob/master/Front-End/Front-End Resource Collection.md#性能优化 这里收集的资料过一遍。

一系列的文章读完了,下面就该把这些文章综合起来,列出所有可优化的点,然后按照重要性依次优化。

要点汇总

推后。

性能分析

先在电脑上查看服务器往客户端发送数据的情况。

  • 在 Chrome 的隐身模式下,访问指定页面。
  • 访问首个页面之前,要开启开发者工具的“禁用缓存”选项,并清除浏览器缓存,保证首次访问页面的效果。
  • 首个页面加载成功之后,将浏览器完整截图,然后清空请求信息,并开启“保留日志”选项。之后每加载完成一个页面并截图之后,就都要清空请求信息,这样就能完整保留下一个页面的请求。
  • 首个页面加载成功之后,取消“禁用缓存”选项,这样后面的页面就可以正常使用缓存了。

整套流程下来,服务端对浏览器的响应就都记下来了。将服务器返回的文件按类型分类(比如分为 PHP/CSS/JS/图片 这四类),以 PHP 文件为例,表格格式如下所示:

文件名称 体积 优化方案 实施难度 优先级
exercise 219K 前后端分离
exam 91K 同上 同上
result 31K 同上 同上

接着在手机上研究客户端往服务器发送数据的情况。

  • 让手机和电脑连上同一个 WiFi,配置手机 WiFi 的 HTTP 代理为电脑端 Charles 中设置的端口号,IP 当然是用电脑的 IP 了。
  • 手机只需要查看向服务器发送的数据包的尺寸。用各个页面测试,请求的 Header 部分普遍在 600~800B 之间,Body 的话,只在提交答案时才有实际意义,自主练习时,20 道选择题加 20 道判断题,Body 的尺寸为 719 字节;自我检测和模拟考试是 80 道选择题加 40 道判断题,Body 的尺寸为 2.11KB。
    • 每道题提交数据格式为: QuestionA123456=B ,一共 17 字节
    • 多道题提交数据格式为: **&**&** ,N 道题的总字节数为 18 * N - 1

统计完上面两方面的数据之后,又根据前面在 Chrome 中截的图,统计了每个页面加载完毕时,所发送的请求数(不含已缓存资源)以及所加载文件的总体积(同样不含已缓存资源),之后可优先对总体积明显偏大的或请求数过多的页面进行优化。

压力测试

待完成。

要点总结

  • 待补充。
@Dream4ever Dream4ever added Back-end Where data really come and go Software About installation ande usage labels May 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Back-end Where data really come and go Software About installation ande usage
Projects
None yet
Development

No branches or pull requests

1 participant