【问题标题】:PHPUnit+ZendFramework ::How I can test multu users session in the same time?PHPUnit+Zend Framework ::如何同时测试多用户会话?
【发布时间】:2011-02-28 10:34:14
【问题描述】:
我是初级程序员,没有任何 QA 经验
(我只写了没有 PHPUnit 或其他工具的简单测试)
如何创建测试以同时测试多用户会话?
(PHPUnit+ZendFramework)
我想做的基本测试示例(我不是 QA - 如果我错了,我很抱歉):
- 用户同时登录
- 用户购买流程 - 只有 1 个用户可以写入,其余用户只能读取。
- 服务器可以同时处理多少会话。
等等。
谢谢
【问题讨论】:
标签:
php
zend-framework
phpunit
zend-test
【解决方案1】:
对于第 3 点,您实际上是在谈论基准测试,而不是测试。看看 ab - Apache Benchmarking 工具
您可以执行以下命令,该命令一次发送 5 个并发请求,总共向网站发送 1000 个请求:
ab -n 1000 -c 5 http://domain.com/index.php
【解决方案2】:
感谢您对 ZF 和测试驱动开发的兴趣。它们都是值得学习的好东西。
在创建测试以专门检查您的应用程序在您提供的环境下是否正常工作时,您会遇到问题。
单元测试通常用于较小的原子行为。您需要创建测试来断言您的应用程序执行此工作流的必要组件,但将它们全部放在一起实际上超出了单元测试的范围。
您可以通过适当地实现状态设计模式来解决此问题并仍然使用测试,该模式将确定,例如,当模拟用户购买时,所购买的特定模拟项目是否处于“锁定”状态。当然,创建稳定的模拟对象以使您的数据在构建到模型中时表现出应有的方式是另一个问题。
最后,#3 有点问题,因为这不是要测试的。如果您的服务器容量过剩,您会怎么做——关闭站点?测试驱动的方法与容量问题并不完全兼容。您需要主动分析站点的速度和内存消耗,并监控真实的用户行为。如果您发现自己正处于接近容量的地步,那么升级您的硬件或主机将是一个好主意。