因公司技术上更新 后期REST API使用率将大幅度提升,作为测试人员需要跟进技术,提前学习测试方式
REST API 和 普通API 在浏览器中访问相同
访问方式:http://ip:port/content/test.do?username=qingqian-
Jmeter测试 REST API
Jmeter中REST API 也和普通API设置参数时-参数是无法传送给server的。
需将Parameters 换成 Body Data, 用Json串的方式填写需要传递的参数
REST API Jmeter.png 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()
- 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
Paste_Image.png
-
postman测试工具
chrome的插件-研发可用于自测-也可将测试用例分享给其他人
Paste_Image.pngTests
var jsonData = JSON.parse(responseBody);
tests["Status code is 200"] = responseCode.code === 200;
tests["Body matches string"] = responseBody.has("alan");
-
bash的curl
貌似这个很简单
Paste_Image.png