zoukankan      html  css  js  c++  java
  • WebService接口实际场景应用(一)

    背景:要求写一套接口测试工具。过程中遇到了WebService接口的问题,遂写下本篇文章。

    阶段问题1:

    需要利用数据驱动,然后读取excel中的数据并直接调用。但是webService接口与http接口不同。http接口调用是这样的:

    Request(method=’’,url=’’,param=’’)

    只需要传入对应的URl,参数就可以了。

    但是webservice接口调用是这样的:

    Client.service.函数(参数)这里的函数是我们可以写入的。 此时我们如果需要调用可以这样:

    eval(“client.service.{0}{1}”).format(method,data)

    下面问题就来了,这里的data,我们并不知道有几个参数。这个时候我想了一个办法:

    eval(“client.service.{0}{1}”).format(method,*data)

    Data传过来是一个list,那么我就将data这个list进行解包。但是这样好像行不通?

    因为格式化参数的时候我没有办法指定具体有一个参数,难道不用指定参数个数?用{}{}?这样也行不通。

    解决方法,反向思想:

    eval(“client.service.{0}(*{1})”).format(method,eval(data))

    解释一波:

    首先eval(data) ,这里会是这样的数据 [‘param1’,’param2’,’param3’]

    method假设是 MYMETHOD

    那么format之前是这样的

    eval(“client.service.{0}(*{1})”).format(MYMETHOD,[‘param1’,’param2’,’param3’])

    format 以后是这样的

    “client.service.MYMETHOD(*[‘param1’,’param2’,’param3’])”

    这样就会直接去调用我们的函数,并且将我们的list转换成我们需要的方法,也就是这样的:

    client.service.MYMETHOD(‘param1’,’param2’,’param3’)

    此问题终结。

  • 相关阅读:
    统计学方法(t-检验)
    generate的使用verilog
    FPGA的存储方式大全
    matlab函数
    三年后的我-记于2018
    labview学习——用户界面模式
    labview线程相关
    labview状态机
    JS~字符串长度判断,超出进行自动截取(支持中文)
    AngulaJs -- 隔离作用域
  • 原文地址:https://www.cnblogs.com/bingoTest/p/11233311.html
Copyright © 2011-2022 走看看