首页 > 解决方案 > 在并行测试运行中访问非静态类中的静态属性

问题描述

我知道如果我有一个具有静态属性的静态类,那么该状态将与所有正在运行的线程共享。

1)但是假设我有一个具有静态属性的非静态类,该静态属性(每次登录都会更改,即 session_token)会在所有线程之间共享吗?

如果它是共享的,那么会话变量之类的东西就不能存储在静态属性中。

2)如何做到这一点?

标签: c#seleniumparallel-processing

解决方案


1)

静态变量在类的所有实例之间共享,无论该类是否是静态的。

在这个问题上可以找到更好的解释:

C#中静态变量有什么用?什么时候使用它?为什么我不能在方法中声明静态变量?

2)

会话变量可以存储在静态中。仅仅因为它们是全局的并不意味着它们是不可变的,只需在会话 ID 更改时更改静态属性。


推荐阅读