nGrinder中快速编写groovy脚本01-脚本结构

版权声明:原创不易,欢迎分享和转载,同时请注明出处,谢谢! https://blog.csdn.net/lijing742180/article/details/84136206

在前面的文章中,我们已经知道,nGrinder支持groovy和Jython脚本,今天学习一下ngrinder中的groovy脚本结构。

ngrinder中的groovy脚本结构类似 junit,同时在junit的基础之上封装了自己的注解,用来控制脚本的运行。

一、运行逻辑图如下:

在这里插入图片描述
此处只列出了groovy脚本的逻辑,jython脚本是类似的,在此不再单独介绍。

二、各注解的使用比较

注解 描述 应用范围 用例
@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中,通常使用单进程多线程就足够大部分测试了,所以:

  • 我们最需要关注的就是 @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() {
        // 关闭资源
    }

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/84136206