【robotframework】RequestLibrary的PUT/DELETE样例
通过Sanic实现了一个mock服务:
from sanic.response import json from sanic import Blueprint bp = Blueprint('mock_blueprint', url_prefix='mock') @bp.route('/form', methods=['POST', ]) async def form_post(request): return json({'status': 'successful', 'message': 'Welcome to use Lion Mock Service. You have sent a POST message', 'body': request.json}) @bp.route('/form', methods=['GET', ]) async def form_get(request): return json({'status': 'successful', 'message': 'Welcome to use Lion Mock Service. You have sent a GET message', 'query_string': request.query_string}) @bp.route('/form/<form_arg:string>', methods=['PUT', ]) async def form_put(request, form_arg): return json({'status': 'successful', 'message': 'Welcome to use Lion Mock Service. You have sent a PUT message', 'form_arg': form_arg, 'body': request.json}) @bp.route('/form/<form_arg:string>', methods=['DELETE', ]) async def form_delete(request, form_arg): return json({'status': 'successful', 'message': 'Welcome to use Lion Mock Service. You have sent a DELETE message', 'form_arg': form_arg}) @bp.route('/weather', methods=['GET', ]) async def lion_get(request): msg = {'date': '2021-02-07', 'weather': 'sunny'} return json(msg)
调用PUT/DELETE服务的RF测试用例如下:
*** Settings *** Library Collections Library RequestsLibrary *** Variables *** ${MOCK_URL} http://192.168.10.109:8000 *** Test Cases *** mock_form接口测试-PUT [Documentation] 通过PUT请求调用Mock服务的/mock/form/<put_arg> Create Session mock ${MOCK_URL} # 待发送消息体 &{post_data}= Create Dictionary k1=v1 k2=v2 # PUT的URL变量 Set Test Variable ${put_arg} put_arg1 ${resp}= Put On Session mock /mock/form/${put_arg} json=${post_data} # 获取返回的form_arg ${form_arg}= Get From Dictionary ${resp.json()} form_arg Should Be Equal ${form_arg} ${put_arg} # 获取返回的body ${body}= Get From Dictionary ${resp.json()} body Dictionaries Should Be Equal ${post_data} ${body} mock_form接口测试-DELETE [Documentation] 通过DELETE请求调用Mock服务的/mock/form/<del_arg> Create Session mock ${MOCK_URL} # DELETE的URL变量 Set Test Variable ${del_arg} del_arg1 ${resp}= Delete On Session mock /mock/form/${del_arg} # 获取返回的form_arg ${form_arg}= Get From Dictionary ${resp.json()} form_arg Should Be Equal ${form_arg} ${del_arg}