背景:要求写一套接口测试工具。过程中遇到了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’)

此问题终结。

WebService接口实际场景应用(一)的更多相关文章

  1. 如何高效的进行WebService接口性能测试

    版权声明:本文为原创文章,转载请先联系并标明出处 关于接口测试的理解,主要有两类,一类是模块与模块间的调用,此类接口测试应该归属于单元测试的范畴,主要测试模块与模块之间联动调用与返回.此类测试大多关注 ...

  2. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

  3. jmeter3.2版本如何进行webservice接口功能测试

    jmeter3.2版本之后就没有SOAP/XML-RPC Request插件了,所以没办法直接进行webservice接口的测试. 原理上: Web service一般就是用SOAP协议通过HTTP来 ...

  4. python开发笔记-python调用webservice接口

    环境描述: 操作系统版本: root@9deba54adab7:/# uname -a Linux 9deba54adab7 --generic #-Ubuntu SMP Thu Dec :: UTC ...

  5. java调用CXF WebService接口的两种方式

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...

  6. 从xfire谈WebService接口化编程

    前段时间有博友在看我的博文<WebService入门案例>后,发邮件问我关于WebService 接口在java中的开发,以及在实际生产环境中的应用.想想自己入职也有一段时间了,似乎也该总 ...

  7. java获取https网站证书,附带调用https:webservice接口

    一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...

  8. php中调用WebService接口

    一.背景 调用第三方短信提供商的WebService接口. 二.介绍 1.WebService三要素: SOAP(Simple Object Access Protocol) 用来描述传递信息的格式 ...

  9. cxf设置代理访问webservice接口

    由于业务上的需要,需要访问第三方提供的webservice接口,但由于公司做了对外访问的限制,不设置代理是不能外网的,如果使用http设置代理访问外网还是比较容易的,但使用cxf有点不知道从哪里入手. ...

  10. 通过iTop Webservice接口丰富OQL的功能

    通过Python调用iTop的Webservice接口: #!/usr/bin/env python #coding: utf-8 import requests import json itopur ...

随机推荐

  1. 关于sqlyang 连接远程服务器 MySQL "1251-client does not support authentication..."的处理办法

    原因是在mysql8之前的版本中加密规则为mysql_native_password而在mysql8以后的加密规则为caching_sha2_password. 做如下修改 ALTER USER 'r ...

  2. Ubuntu下shell 左侧补零

    test_1=1 test=`echo $test_1|awk '{printf("%03d\n",$test_1)}'` 输出为001.

  3. jenkins+stf+airtest实现移动端自动化测试平台

    背景: 公司android测试机比较多没有统一的管理: app自动化测试时获取设备的状态比较麻烦,通过STF可以轻松获取: 自动化异常场景时.可远程操控设备: 需要随时了解设备情况: 装逼 前提: 已 ...

  4. QTcpSocket 设置接收数据延时等待时间

    /* 客户端接入槽函数 */ void TcpServer::slotNewConnect(void) {/* 获取连接的客户端句柄 这里设置刷新数据时间 1ms */ QTcpSocket *pSo ...

  5. 实验1task2

    <实验结论> #include <stdio.h> #include <stdlib.h> int main() { int n,sum; scanf(" ...

  6. SQL Server性能优化工具Profiler

    SQL Server Profiler是什么 SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果. 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件 ...

  7. mysql in和find_in_set

    一.查询包含","的列 1.如果查询条件包含单引号 用in 如:select * from t_test where names in ('李红'); 只能查询出names列中值为 ...

  8. oracle之如何获取执行计划方法

    1.什么是执行计划 为了执行sql语句,Oracle在内部必须实现许多步骤,这些步骤可能是从数据库中物理检索数据行,或者用某种方法来准备数据行等,接着Oracle会按照一定的顺序一次执行这些步骤,最后 ...

  9. Windows支持多个远程连接

    1.点击 开始-->运行-->输入"gpedit.msc",进入本地组策略编辑器 2.点击 计算机配置-->管理模板-->Windows组件-->远程 ...

  10. C与C++字符串比较

    #include<iostream> #include<string> using namespace std; int main() { char a[] = "a ...