SoapUI测试时基于project的,工作模式为project - testsuite - test case - step, 所以测试时需按顺序添加这些元件, 最后在测试step中实现具体测试.
另外,当新建project时选择Rest/Soap(非empty project)时,输入URL等信息后,可直接右键generate testsuite, 会自动在step中添加REST request.
Properties: 用来保存属性的值,后面的步骤都可以使用, 相当于JMeter中的"用户定义的变量", 可以把变量提取出来统一管理
Property Transfer: 用来在不同测试步骤间传递属性的步骤,这可以使用的场景有从一个Properties的步骤将属性传给一个TestRequests“的步骤, 相当于JMeter中的提取器. 本例中是用来传递http request生成的sign值(md5加密)
- Properties使用:
source: 用于标记参数值从哪里过来,下拉框选择HTTP sign, 注意: Property 需选择"ResponseAsXml", Path Language 选择时,需点击右侧的小标记选择对应的取值. 若Property 需选择"Response"时会报错: error: Unexpected element:CDATA
Target: 标记值放入哪个request中
2. HTTP Requst
其中参数中是从Properties中取出来的, 取值用${Properties#account} 需要标明参数来源
sign值时Property Transfer传递进来的
- 常用测试步骤:
测试步骤主要有:
Properties:允许你定义任意数量的属性,属性可以从文件读出或写入,可以用来参数化请求、断言等。
Property Transfer:允许你在测试步骤间传递或抽取属性值,如你可以从一个响应信息中抽取一个值,然后通过DataSink测试步骤写入到一个外部文件。
DataGen:允许你创建一个计数器、随机值等的动态的属性。—测试步骤数据相关
SoapUI Pro添加了一些测试步骤主要用来与外部数据源交互,可读可写,主要有:
DataSource:允许你从一些外部源文件中读到属性值,外部源文件包含数据库、EXECL文件、directories等,之后可通过使用属性传递等将值作为请求入参或验证响应报文等。
DataSource Loop:与DataSource成对出现,主要用在当DataSource有多行数据时,可通过DataSource Loop循环得到每一行的值来作为入参发起调用,在SoapUI中这是一种基于数据驱动的测试。
DataSink:允许你将属性值写到外部存储文件中,如数据库、EXECL文件等,以供后续分析和处理。—测试步骤执行流程
虽然在测试用例中测试步骤的执行是顺序的,但SoapUI提供了一些测试步骤允许我们可以做分支、循环等:
Conditional Goto:检查返回的响应报文中指定的值,并跳转到步骤中符合条件配置的目标步骤。
Delay:根据配置的毫秒数暂停测试步骤的执行。
Run TestCase:转去执行指定的目标测试用例,当某些测试步骤需要在一些用例运行前先被执行,可以使用这种方式进行处理。
DataSource Loop:正如上面所提到的,根据DataSource所配置的行数,以每行为一次入参,循环地执行测试用例中特定的某几个步骤。—测试步骤其它类型
SoapUI还提供了其它类型的测试步骤,让你可以做任何需要做的事情。Script TestStep测试步骤让我们可以写任意的脚本(包括groovy和javascript)做几乎所有需要做的事情,一般会在以下几个场景使用:
一些无法通过默认的断言机制实现的复杂报文的校验。复杂的分支或循环。
以数据驱动来生成测试步骤的情况,如从数据库中动态生成测试步骤。集成外部系统来读写数据。
触发外部的活动或进程,如发送邮件或启动程序。与用户的交互(对话框等)来得到输入或控制执行。……
SoapUI提供强大的功能,基本上可以满足你所有服务接口的功能测试需求。