在前面的文章中,咱们已经知道,nGrinder支持groovy和Jython脚本,今天学习一下ngrinder中的groovy脚本结构。
ngrinder中的groovy脚本结构相似 junit,同时在junit的基础之上封装了本身的注解,用来控制脚本的运行。java
注解 | 描述 | 应用范围 | 用例 |
---|---|---|---|
@BeforeProcess | 定义在进程被调用以前应执行的行为 | static method | 加载被线程共享的资源文件,定义 GTest 等 |
@AfterProcess | 定义在进程被终止以前应执行的行为 | static method | 关闭资源文件 |
@BeforeThread | 定义在每一个线程被调用以前应执行的行为 | member method | 登陆目标系统,创建线程内的一些值,例如,Cookie 处理 |
@AfterThread | 定义在每一个线程被终止以前应执行的行为 | member method | 退出系统 |
@Before | 定义每一个被 @Test 注解的方法被执行前应执行的行为 | member method | 每一个被 @Test 注解的方法的共享逻辑、变量设置 |
@After | 定义每一个被 @Test 注解的方法被执行后应执行的行为 | member method | 不多使用 |
@Test | 定义测试行为,被执行屡次 | member method | 测试体 |
在ngrinder中,一般使用单进程多线程就足够大部分测试了,因此:cookie
@Test
,这个是循环体;@Before
,这里设置多个循环体的共享变量;@BeforeThread
和 @AfterThread
,用于设置每一个线程执行先后的行为。@RunWith(GrinderRunner) // 每一个测试类都要加这个注解 class TestRunner { @BeforeProcess // 在每一个进程启动前执行 public static void beforeProcess() { // 加载资源文件、初始化 GTest 等 } @BeforeThread // 在每一个线程执行前执行 public void beforeThread() { // 登陆、设置 cookie 之类 } @Before // 在每一个 @Test 注解的方法执行前执行 public void before() { // 设置变量、多个 @Test 方法共用的逻辑等 } @Test // 在测试结束前不断运行。各个 @Test 注解的方法异步执行。 public void foo() { // ... } @Test public void bar() { // ... } @After // 在每一个 @Test 注解的方法执行后执行 public void after() { // 不多用到 } @AfterThread public void afterThread() { // 登出之类 } @AfterProcess // 在每一个进程结束后执行 public static void afterProcess() { // 关闭资源 }