当 运行 并发测试时,我们可以使用静态 Pojo 方法吗?

Can we use static Pojo methods when running tests concurrently?

目前,我已经建立了一个执行以下操作的自动化测试框架:

  1. 并发执行特定测试(即同时进行 x3 测试 时间)。
  2. 该框架使用 Cucumber BDD。
  3. 我需要跨步骤存储和共享数据。

我需要您关于在 运行 并发测试时使用静态方法和变量的建议,即使在 运行 并发测试时数据也会正确存储吗?

public class Chat_Pojo {

    private static String messageToSend;

    public static void storeUniqueMessage(String message) {
        messageToSend = message;
    }

    public static String getUniqueMessage() {
        return messageToSend;
    }

    public static void wipeMessage() {
        messageToSend = null;
    }
    ...
}

private static String messageToSend; 仅属于 Chat_Pojo class,因此如果您不想共享该值,则应将其修改为 private static ThreadLocal<String> messageToSend。在这种情况下,每个线程都有自己的 messageToSend 值。分别如果你想得到那个值,你需要调用 set()get() 如果要在线程之间共享该值,则需要同步修改方法( public static void storeUniqueMessage(String message)public static void wipeMessage()