本篇文章来讲一下SoapUI在使用中常用的参数化方法字段参数化和使用DataSource调用Excel中的

数据给接口参数化,其中DataSource功能SoapUI开源版没有,大家可以使用破解版,

破解地址:https://www.cnblogs.com/Sweettesting/p/11399534.html

一、准备工作

  为了方便大家上手实操,本次我们使用公用的WEB服务。

  

公用事业:国内飞机航班时刻表 WEB 服务
Endpoint:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx
Disco:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx?disco 
WSDL:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl

  关于接口方法“getDomesticAirlinesTime”的介绍:

输入参数:startCity = 出发城市(中文城市名称或缩写、空则默认:上海);

     lastCity = 抵达城市(中文城市名称或缩写、空则默认:北京);

     theDate = 出发日期(String 格式:yyyy-MM-dd,如:2007-07-02,空则默认当天);

     userID = 商业用户ID(免费用户不需要)

返回数据:DataSet,Table(0)结构为 Item(Company)航空公司、

     Item(AirlineCode)航班号、Item(StartDrome)出发机场、

     Item(ArriveDrome)到达机场、Item(StartTime)出发时间、

     Item(ArriveTime)到达时间、Item(Mode)机型、

     Item(AirlineStop)经停、Item(Week)飞行周期(星期)

二、参数化之Properties

  Property 是一个命名的字符串可以被 Groovy Script,Property Transfer 或者 Property-Expansion 引用,目前所有的变量均被处理为字符串。

SoapUI允许在项目的各个层次中定义变量,常用的层次包括: Project,TestSuite,TestCase,Global等。

官方文档:https://www.soapui.org/docs/functional-testing/teststep-reference/properties.html

  1.首先,我们New Soap Project,新建一个Soap接口项目,命名为DomesticAirline

  2.我们鼠标双击Request1,依据接口方法要求输入入参,测试一下此接口的正确性

  3.为Request1新增一个TestCase,命名为“获取航班时刻表”,此时会发现之前我们测试接口的入参数据跟着带入进来

  4.右键Test Steps>>>Add Step>>>Properties,然后添加需要进行参数化的变量,变量名自定义为startCity、lastCity、theDate,填写对应的Value

  5.双击“获取航班时刻表”请求,对请求中的参数进行变量引用,格式:${#Properties#变量名},

第一个#后定义哪个级别的属性变量,第二个#后定义属性名称。REST类接口请求同理。

  6.双击TestCase1,点击绿色三角图标运行请求,进度条绿色表示请求通过。在TestCase Log中双击Step可以查看运行结果。

 三、参数化之DataSource

对于DataSource工具栏中各项属性的含义,大家可以阅读官方文档:https://www.soapui.org/docs/data-driven-tests/reference/datasources.html

DataSource Type:

  a.本次我们使用DataSource调用Excel中的数据给接口参数化,先准备Excel文件,内容如下:

这里要注意,入参theDate的值要使用文本格式,不然SoapUI会读取出错。

  b.右键Test Steps-->Add Step-->DataSource,添加变量名startCity、lastCity、theDate,

DataSource选择Excel,Configuration配置见图解。

  c.配置好DataSource,接下来在接口中进行参数化,如起始城市${DataSource#startCity},其它参数同理

  d.此时,我们需要遍历DataSource中的所有内容,这里就要用到DataSource Loop这个步骤。

右键Test Steps-->Add Step-->DataSource Loop,设置DataSource Loop的数据来源、Target step

  e.调整Test Steps的顺序,正确的步骤应当是“数据源>>>请求>>>数据源循环”,

双击TestCase1,运行,我们可以看到Excel的数据均被调用。

SoapUI常用的参数化方法的更多相关文章

  1. 【终结版】C#常用函数和方法集汇总

    C#里面的常用的函数和方法非常重要,然而做题的时候会经常忘记这些封装好的方法,所以我总结一下 C#常用函数和方法集. [1]C#操作字符串的常用使用方法 在 C# 中,您可以使用字符数组来表示字符串, ...

  2. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  3. Java常用的输入输出方法

    对于经常上机刷题的来说,首先得解决输入输出方法,Java的输入输出流在Java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法 首先输出 大家最熟悉的莫过于输出方法,直接用S ...

  4. JavaScript常用对象的方法和属性

    ---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...

  5. Document-对象属性和常用的对象方法

    Document-对象属性和常用的对象方法 对象属性 document.title                           //设置文档标题等价于HTML的title标签 document ...

  6. 干货:结合Scikit-learn介绍几种常用的特征选择方法

    原文  http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非 ...

  7. ios基础篇(四)——UILabel的常用属性及方法

    UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...

  8. (转)在网页中JS函数自动执行常用三种方法

    原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...

  9. 结合Scikit-learn介绍几种常用的特征选择方法

    特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...

随机推荐

  1. JavaScript如何处理JSON数据

    JSON (Javescript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON ...

  2. java语法糖:(1)可变长度参数以及foreach循环原理

    语法糖 语法糖:是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用 ...

  3. MySQL索引的分类、结构、使用场景

    MySQL索引分类 1.主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引 语法: 随表一起建索引: CREATE TABLE customer (id INT(10) UNSIGNE ...

  4. JavaEE高级-SpringMVC学习笔记

    *SpringMVC概述 - Spring为展示层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一 - Spring3.0后全面超越Struts2,成为最优秀的MVC框架 - S ...

  5. 用HTTP核心模块配置一个静态Web服务器

    静态Web服务器的主要功能由ngx_http_core_module模块(HTTP框架的主要成员)实现与core模块类似,可以根据相关模块(如ngx_http_gzip_filter_module.n ...

  6. 第三次作业—Wordcount

    一.地址 Github项目地址:https://github.com/1320068008/WordCount-1 同伴蒋鑫作业地址:https://www.cnblogs.com/JxsBK/p/1 ...

  7. GUI学习之十九——QFontComboBox学习总结

    我们上一章学习了QComboBox的用法,这一章我们来看一下它的一个比较常用的子类:QFontComboBox(). 一.描述: QFontComboBox()是QComboBox()的一个子类,但是 ...

  8. vue2.0 之 slot 内容分发

    前提:父组件模板的内容在父组件作用域内编译:子组件模板的内容在子组件作用域内编译.被分发的内容会在父作用域内编译. 一.单个插槽 // 子组件模板 child-component <div> ...

  9. FCC 成都社区·前端周刊 第 9 期

    1. Node.js 10 将带来什么? Node.js 10 的第一个版本将于本周二(4 月 24 日)发布,并将在 10 月份推出 LTS 版本,将带来哪些更新? N-API,持续 HTTP/2 ...

  10. iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用

    首先,声明几个属性 @property(nonatomic,strong)UIBezierPath * beizer; @property(nonatomic,assign)CGPoint start ...