记录web服务调用并在之后为其提供服务的工具

ws-recorder的Python项目详细描述


说明

wsrecorder是一个为您的web服务提供代理的工具。此工具允许记录和提供webservices示例。 代理是python函数decorator。示例是xslt模板,它将请求转换为预期的答复。 示例有一种形式的决策树,在每个节点中执行针对配置的xpath的测试;树路径 取决于每个请求的xpath值。

更改

  • 0.9.9:
    • 使用lxml-xpath2-functions中的函数,可以使用前缀xp2f访问它们

用法

示例:

params = {
    'request_msg_name': '//request/*',
    'reply_envelope_body': '//reply/*',
    'messages': {
        'msg1': [
            '//msg1/param1/text()',
            '//msg1/param2/text()'
        ],
    },
    'output_dir': '/tmp/tmpdir/,
}

recorder = WSRecorder(mode=WSRecorder.Mode.RECORD, **params)
cls.record_service = staticmethod(recorder.decorator(web_service_mockup))

文档

该类的对象为Web服务提供代理。首先需要创建此类的对象才能使用代理。

wsrecorder.初始化

WSRecorder.__init__(self, request_msg_name, reply_envelope_body, output_dir, mode=None, output_filename='{0}.output',messages={})

初始化wsrecord的对象。

mode:控制wsrecorder行为的参数。默认值:WSRecorder.Mode.TRANSPARENT

可用值:

  • WSRecorder.Mode.RECORD-根据配置将示例记录到输出目录中。
  • WSRecorder.Mode.OVERRIDE-根据配置记录示例,覆盖已记录的消息。
  • WSRecorder.Mode.SERVE-服务记录的示例,如果失败,则不命中webservices,引发NotRecordedException
  • WSRecorder.Mode.TRANSPARENT-不使用录制的示例,只需点击webservices。
  • WSRecorder.Mode.SERVE_TRANSPARENT-尝试使用录制的示例,如果失败,只需点击webservices。
  • WSRecorder.Mode.SERVE_RECORD-尝试使用录制的示例,如果失败,只需点击webservices并录制回复。

请求消息名:指示请求消息中的名称的xpath。消息名称随后用于配置 每个邮件的特定处理程序,并将不同邮件的答复保存在不同的文件中。

reply_envelope_body:表示回复消息正文的xpath。回复正文是回复消息的一部分,它 是有意义的,并且可以在答复中更改。回复正文上方的所有内容都是常量,并在每个回复中重复使用 信息。在这种情况下,reply_envelope_bodyxpath的回复消息不能有空节点,异常 NotRecordedException已筹集。

output目录:记录的样本存储在RECORD/OVERRIDE模式中,并从中记录 样本以SERVE模式读取。

output_filename:保存文件的模式。默认值{}.output。消息名传递给string.format 功能。

messages:已配置消息的字典。字典中的键是消息名,值是xpath列表, 对请求消息进行顺序检查。

pretty_print:boolean param确定输出文件是否应该进行良好打印。默认值:False

例外情况:

ConfigurationException在初始化期间引发,条件是:

  • Request message name is not proper xpath,
  • Reply envelope body is not proper xpath,
  • Chosen mode is not allowed,
  • Any xpath for message is not proper xpath,
  • Output directory path is not proper.

wsrecorder.decorator

WSRecorder.decorator(self, fn, mode=None)

您的Web服务的代理。它要求修饰函数作为第一个参数接受一个请求消息 并返回消息的回复。邮件的请求和答复必须是pythonstringlxml.etree._Element

例外情况:

NotRecordedException在服务模式下引发,如果示例没有对给定请求的答复。

ConfigurationException在代理函数中引发,条件是:
  • 配置的xpath与在录制的sample、raise-in模式下保存的xpath不匹配:record、override、
    服务记录,
  • 不允许给定模式。
  • 带有回复信封正文的xpath不适合给定的消息回复。

示例用法

@obj.decorator
def webservice1(request):
    return reply

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java用变化的替换字符串替换子字符串   从数据库中断中恢复的oracle Java DAL?   Android/Java页边距位于左/右/底部   java如何用相同的源代码构建不同的APK?(我发现了一个错误)   java正则表达式,仅当字符串以一行中的3个数字开头时才匹配第一个数字   使用以xml为输入的给定端点调用java中的rest-ful web服务?   java长字符串转换为UTF8引发异常   java如何使用截取方法获取ArrayList   java将计算列添加到可观察列表中   正则表达式如何在java正则表达式中使用组?   java正则表达式只接受字母表和空格,不允许在字符串的开头和结尾使用空格   java简单onclick按钮在安卓中不起作用   java如何在Spring中只实现Crudepository的特定方法?   java无法使用json对象NPE读取jsonarray   java我可以添加maven依赖项,这些依赖项被打包为除此之外的任何东西。罐子