美文网首页测试员的那点事小强测试技术与人生杂谈软件测试
nGrinder中快速编写groovy脚本03-在GET请求中发

nGrinder中快速编写groovy脚本03-在GET请求中发

作者: 测试帮日记 | 来源:发表于2019-05-13 22:33 被阅读2次

    点击链接加入QQ群229390571(免费公开课、视频应有尽有):https://jq.qq.com/?_wv=1027&k=5rbudQa

    在GET请求脚本中添加添加信息头、cookies和自定义参数,有两种方式:

    一种是在UI界面添加后自动生成脚本,一种是直接在脚本中添加。

    一、通过UI界面添加

    通过 UI 设置:脚本 -> 新建脚本 -> 显示高级配置

    生成代码如下:

    @RunWith(GrinderRunner)

    @FixMethodOrder(MethodSorters.NAME_ASCENDING)

    class TestRunner {

    public static GTest test

    public static HTTPRequest request

    public static NVPair[] headers = []

    public static NVPair[] params = []

    public static Cookie[] cookies = []

    @BeforeProcess

    public static void beforeProcess() {

    HTTPPluginControl.getConnectionDefaults().timeout = 6000

    test = new GTest(1, "www.baidu.com")

    request = new HTTPRequest()

    // =========下面是我刚才添加的参数=========

    // Set header datas

    List<NVPair> headerList = new ArrayList<NVPair>()

    headerList.add(new NVPair("Connection", "keep-alive"))

    headerList.add(new NVPair("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0"))

    headers = headerList.toArray()

    // Set param datas

    List<NVPair> paramList = new ArrayList<NVPair>()

    paramList.add(new NVPair("name", "jing"))

    paramList.add(new NVPair("age", "18"))

    paramList.add(new NVPair("sex", "beauty"))

    params = paramList.toArray()

    // Set cookie datas

    List<Cookie> cookieList = new ArrayList<Cookie>()

    cookieList.add(new Cookie("myToken", "xxxxxxxx", "www.baidu.com", "", new Date(32503647599000L), false))

    cookies = cookieList.toArray()

    // =========上面是我刚才添加的参数=========

    grinder.logger.info("before process.");

    }

    @BeforeThread

    public void beforeThread() {

    test.record(this, "test")

    grinder.statistics.delayReports=true;

    grinder.logger.info("before thread.");

    }

    @Before

    public void before() {

    request.setHeaders(headers)

    cookies.each { CookieModule.addCookie(it, HTTPPluginControl.getThreadHTTPClientContext()) }

    grinder.logger.info("before thread. init headers and cookies");

    }

    @Test

    public void test(){

    HTTPResponse result = request.GET("https://www.baidu.com", params)

    assertThat(result.statusCode, is(200))

    // 这是我通过引导页手动添加的断言

    assertThat(result.getText(), containsString("jing"))

    }

    }

    可以看到这种方式是在@beforeProcess中添加heads 、params、cookies。

    二、直接在脚本中添加

    (在此只演示添加 headers 和 params的方式,添加cookies是类似的,不再赘述)

    根据在脚本中添加的位置不同,可以分为以下几种方式:

    1、在 @BeforeProcess 注解的方法里添加 headers 和 params

    这种方法跟第一种方法的效果是一样的

    // 添加headers

    List<NVPair> headerList = new ArrayList<NVPair>()

    headerList.add(new NVPair("Accept-Language", "en-US,zh-CN;"))

    // ...可以添加多个header

    headers = headerList.toArray()

    // 添加params

    List<NVPair> paramList = new ArrayList<NVPair>()

    paramList.add(new NVPair("accessToken", "xxxxxxxxx"))

    // ...可以添加多个param

    params = paramList.toArray()

    2、直接在TestRunner类的静态变量中添加 headers 和 params

    在整个类最前面定义静态变量的地方,直接给变量赋值:

    // 添加headers

    public static NVPair[] headers = [

        new NVPair("Accept-Language", "en-US,zh-CN;")

    ]

    // 添加params

    public static NVPair[] params = [

        new NVPair("accessToken", "xxxxxxxxxx")

    ]

    3、在 @Test 注解的方法中添加 headers 和 params

    在发送request请求的方法里添加参数:

    // HTTPResponse result = request.GET("https://www.baidu.com", params)

    // 添加headers

    HTTPResponse result = request1.GET("https://www.baidu.com", [new NVPair("Accept-Language", "en-US,zh-CN;")] as NVPair[])

    // 添加params

    HTTPResponse result = request.GET("https://www.baidu.com", [new NVPair("accessToken", "xxxxxx")] as NVPair[])

    到底选择哪种方式,要根据具体的参数类型和业务场景来决定。

    相关文章

      网友评论

        本文标题:nGrinder中快速编写groovy脚本03-在GET请求中发

        本文链接:https://www.haomeiwen.com/subject/gpudaqtx.html