我们已经配置了 teamCity,我们在上面运行我们的构建以进行测试。问题是,当我们在 TeamCity 上运行时,有几个测试用例(谈论一个具有 5-15 个测试方法的特定类)需要将近 45 分钟。
我一直在尝试在本地机器上测试相同的案例,它们不会超过 6-7 分钟。
你们能给我一些最佳实践建议,帮助我找出这些测试用例的可能原因吗?现在我把日志语句放在每个带有时间戳的地方。还有什么我可以做的吗?
最佳答案
我会看看这两种环境之间是否有区别以及有什么区别:
- 操作系统和文件系统是否相同?
- 机器的 CPU 负载是多少?
- 机器的 I/O 负载是多少?
- 系统日志中是否显示了某些内容,例如(网络或身份验证)超时可能会导致性能极度下降
- 测试用例是否使用外部资源(例如数据库、网络),这些资源可能具有与慢速机器所在位置不同的访问路径?
- TeamCity 是否在每次测试后生成大量报告,这可能是速度较慢的地方?也许这不是实际的测试用例执行,而是在测试之间或测试之后执行的另一个操作。
- TeamCity 环境是否执行任何不在本地执行的设置或拆卸功能?例如建立测试数据库或修剪现有的测试数据库?
- 慢速机器是集群构建服务器,必须通过线路在主从之间进行通信吗?测试是在主机上还是从机上执行?
此外,您是否也在 TeamCity 中本地运行测试用例?
关于java - 如何检查测试套件在一个环境中运行缓慢的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198323/