REST API 测试方式

因公司技术上更新 后期REST API使用率将大幅度提升,作为测试人员需要跟进技术,提前学习测试方式

  1. REST API 和 普通API 在浏览器中访问相同
    访问方式:http://ip:port/content/test.do?username=qingqian

  2. Jmeter测试 REST API
    Jmeter中REST API 也和普通API设置参数时-参数是无法传送给server的。
    需将Parameters 换成 Body Data, 用Json串的方式填写需要传递的参数


    REST API 测试方式_第1张图片
    REST API Jmeter.png
  3. REST API 的功能测试
    虽可以在浏览器上访问,但做功能测试时 会有N多可能性要测,不可能手工将测试点的url一一贴到浏览器中进行测试,需要考虑测试的自动化。
    在bash下面有 curl,python有pycurl,因计划用python语言来做自动化测试工具,所首选pycurl。

import pycurl
import StringIO
def pycurl_test():
    c = pycurl.Curl()
    str = StringIO.StringIO()
    c.setopt(pycurl.URL,'http://ip:port/content/test.do?username=qingqian')
    c.setopt(pycurl.WRITEFUNCTION, str.write)
    c.setopt(pycurl.FOLLOWLOCATION, 1)
    c.perform()
    print c.getinfo(pycurl.HTTP_CODE)
    c.close()
  1. RIDE中测试REST API
    需安装两个lib
pip install -U requests
pip install -U robotframework-requests

RIDE中的脚本:

*** Settings ***
Library           Collections
Library           RequestsLibrary
*** Test Cases ***
Login
    Create Session    api    http://ip:port/epg/
    ${addr}    Get Request    api    aaa/login.do?userId=qingqian
    Should Be Equal As Strings    ${addr.status_code}    200
    Log    ${addr.content}
    ${responsedata}    To Json    ${addr.content}
    ${keys}    Get Dictionary keys    ${responsedata}
    ${values}    Get Dictionary Values    ${responsedata}
    ${str}    Get From Dictionary    ${responsedata}    userId
    Dictionary Should Contain Value    ${responsedata}    200
REST API 测试方式_第2张图片
Paste_Image.png
  1. postman测试工具
    chrome的插件-研发可用于自测-也可将测试用例分享给其他人


    REST API 测试方式_第3张图片
    Paste_Image.png

    Tests

var jsonData = JSON.parse(responseBody);
tests["Status code is 200"] = responseCode.code === 200;
tests["Body matches string"] = responseBody.has("alan");
  1. bash的curl
    貌似这个很简单


    REST API 测试方式_第4张图片
    Paste_Image.png

你可能感兴趣的:(REST API 测试方式)