java - 如何检查测试套件在一个环境中运行缓慢的原因

标签 java junit teamcity

我们已经配置了 teamCity,我们在上面运行我们的构建以进行测试。问题是,当我们在 TeamCity 上运行时,有几个测试用例(谈论一个具有 5-15 个测试方法的特定类)需要将近 45 分钟。

我一直在尝试在本地机器上测试相同的案例,它们不会超过 6-7 分钟。

你们能给我一些最佳实践建议,帮助我找出这些测试用例的可能原因吗?现在我把日志语句放在每个带有时间戳的地方。还有什么我可以做的吗?

最佳答案

我会看看这两种环境之间是否有区别以及有什么区别:

  • 操作系统和文件系统是否相同?
  • 机器的 CPU 负载是多少?
  • 机器的 I/O 负载是多少?
  • 系统日志中是否显示了某些内容,例如(网络或身份验证)超时可能会导致性能极度下降
  • 测试用例是否使用外部资源(例如数据库、网络),这些资源可能具有与慢速机器所在位置不同的访问路径?
  • TeamCity 是否在每次测试后生成大量报告,这可能是速度较慢的地方?也许这不是实际的测试用例执行,而是在测试之间或测试之后执行的另一个操作。
  • TeamCity 环境是否执行任何不在本地执行的设置或拆卸功能?例如建立测试数据库或修剪现有的测试数据库?
  • 慢速机器是集群构建服务器,必须通过线路在主从之间进行通信吗?测试是在主机上还是从机上执行?

此外,您是否也在 TeamCity 中本地运行测试用例?

关于java - 如何检查测试套件在一个环境中运行缓慢的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198323/

相关文章:

java - 如何防止一个方法在测试中调用另一个方法?

c# - 如何排除类型和方法不被 TeamCity 中的 dotCover 覆盖?

svn - TeamCity:带有 GitHub 外部的 Subversion VCS 根目录

java - 在 JUNIT 测试中未创建 Hibernate 事务

batch-file - TeamCity——启动tomcat

java - 如何在配置 util 字符串中添加 java 变量值 -

java - 简单地改变一个变量的值会改变我链表中节点的值吗?这不应该发生

java - Spring Security JWT - 400 错误请求 : "invalid grant" "Bad credentials"

Java - 注释处理器 - 未调用方法进程

java - org.h2.jdbc.JdbcSQL异常 : Schema "MYAPP" not found; SQL statement