在线用户数:用户同时在一定时间段的在线数量
并发用户数:某一时刻同时向服务器发送请求的用户数
一般而言,我们习惯以5-20的比率来推算并发用户与在线用户之间的关系。即,并发与在线的比例约为5%-20%
比如,某网站存在注册用户数为10W人,但同时在线最多1W人,但这1W个人,可能只有500人会浏览帖子,500人会进行发帖,只有这1000个人对服务器才有交易,那我们计算并发量的时候,就可以以1000为标准!
昨天读完了段念写的《软件性能测试过程详解与案例剖析》一书的第一章,感觉学到了不少东西,以下将该书中的我认为是精华的一篇过来给大家一起看看:
在实际的性能测试中,经常接触到的与并发用户数相关的概念还包括“并发用户数”、“系统用户数”和“同时在线用户数”,下面用一个实际的例子来说明它们之间的差别。
假设有一个OA系统,该系统有2000个使用用户——这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量记数所有已登录的用户),从在线统计功能中可以得到,最高峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?
根据我们对业务并发用户数的定义,这500就是整个系统使用时最大的业务并发用户数。当然,500这个数值只是表明在最高峰时刻有500个用户登录了系统,并不表示实际服务器承受的压力。因为服务器承受的压力还与具体的用户访问模式相关。例如,在这500个“同时使用系统”的用户中,考察某一个时间点,在这个时间上,假设其中40%的用户在较有兴致地看系统公告(注意:“看”这个动作是不会对服务端产生任何负担的),20%的用户在填写复杂的表格(对用户填写的表格来说,只有在“提交”的时刻才会向服务端发送请求,填写过程是不对服务端构成压力的),20%部分用户在发呆(也就是什么也没有做),剩下的20%用户在不停地从一个页面跳转到另一个页面——在这种场景下,可以说,只有20%的用户真正对服务器构成了压力。因此,从上面的例子中可以看出,服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。
在实际的性能测试工作中,测试人员一般比
"<font>你好</font>"<param name="MovieWindowWidth" value="320">;<b>hello</b>;alert("hello");doucment.write("abc");<Script Language="JavaScript"> </script>;<br>;<tr>;<td>;</tr>;</td>;</html>;</body>;</table>等设计模式中的SOLID原则,分别是单一原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则,遵循前辈们总结出来的五大原则可以使程序解决紧耦合,更加健壮。来看个表单:
| 简拼 | 全拼 | 汉字 | 简单介绍 |
|---|---|---|---|
| SRP | The Single Responsibility Principle | 单一责任原则 | 对象应该仅具有单一的功能 |
| OCP | The Open Closed Principle | 开放封闭原则 | 软件体应该对扩展是开放的,但对修改封闭的 |
| LSP | The Liskov Substitution Principle | 里氏替换原则 | 程序中的对象应该是可以在不改变程序正确性的前提下被它的子类对象所替换的 |
| DIP | The Dependency Inversion Principle | 依赖倒置原则 | 多个特定客户端接口要好于一个宽泛用途的接口 |
| ISP | The Interface Segregation Principle | 接口分离原则 | 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口;抽象接口不应该依赖于具体实现,而具体实现则应该依赖于抽象接口 |
我们要注意的是,原则并不是规则,更不是教条,对智者来说是指导,对愚者来说是遵从。
它指的是一个类或者一个方法只做一件事。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化就可能抑制或者削弱这个类完成其他职责的能力。例如餐厅服务员负责把订单给厨师去做,而不是服务员又要订单又要炒菜。
在这里有一句特别有名的话,那就是,THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE,意思就是,当需要修改某个类的时候原因有且只有一个。
换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新
注意:supervisor 只适合在python2.6以后,python3以前的版本才可正常安装supervisor
pip install supervisor
执行下面命令生成默认的配置文件supervisord.conf
echo_supervisord_conf > /etc/supervisord.conf
开始启动:
supervisord -c /etc/supervisord.conf
通过命令,可以查看到已经成功启动
ps -ef | grep supervisord
进入刚刚创建的默认配置文件supervisord.conf,并配置为如下
[include]files = /etc/supervisord/*.ini
PS:此处是把supervisor需要执行的配置文件统一设置到/etc/supervisord
[program:laravel]command=php /usr/local/www/zhibo_master/artisan queue:workautostart=trueautorestart=truenumprocs=1user=webprocess_name=%(process_num)sstdout_logfile=/var/log/supervisor/laravel.log
PS:
comma
菜单:Tools-> Fiddler Options->Connections,勾选"Allow remote computers to connect"
注: 8888为默认端口号,可修改,但需注意两点,一是本机空闲端口,二是手机代理设置时端口要一致。
查看本机的ip地址,在本机命令行输入:ipconfig
打开Fiddler,右上角有一个Online,这里也可以查看IP。如果和电脑的ip不一致时,以这里的为准。
条件:保证手机和电脑都处于同一个网络。
给手机设置代理
打开手机浏览器,输入ip:端口号=172.18.53.93:8888,点击前往,见下图:
打开一个下载证书的页面,如下,点击最下方的“FiddlerRoot certificate”按钮,下载证书。
点击按钮,进入下个页面,出现一个安装文件,点击“安装”。
5、跳转页面要求设置一个手机密码,就是开机密码,没有就自己设置一个,记住密码就行会。输入开机密码后,出现一个授权证书,如下,点击安装即可。
出现“已验证”字样,如下图。表示证书安装成功。
操作手机,电脑fiddler中会显示一些http信息,即为成功
打开手机的浏览器,使用百度,输入“selenium”百度一下。查看Fiddler上的有请求数据。
结果如下:
作者:释梦燃
来源:CSDN
原文:https: //blog.csdn.net/shimengran107/article/details/78644862
版权声明:本文为博主原创文章,转载请附上博文链接!