SoapUI 的几种常用参数化方式

本贴最后更新于 780 天前,其中的信息可能已经时移世改

今天给大家来梳理下soapui这款工具关于参数化的几种方式以及具体的应用场景

1、properties

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

比如工作中需要测试主流程功能即多个功能,比如这里注册register、登录login两个功能请求,包含的请求参数,我们分别来看下:

注册请求中参数分别是手机号码mobilephone、密码pwd、注册名regname

image.png

登录请求中参数分别是手机号码mobilephone、密码pwd
image.png

如果想多次运行TestCase,完成多次注册-登录,因为mobilephone、regname是唯一的,所以每运行一次,就必须修改一次这些参数值。实际工作中不可能只有注册、登录两个请求,包含的功能请求会更多,工作量就相当大。

所以这里解决办法就是进行参数化


1. 右键Test Steps-->Add Step-->Properties ![image.png](http://testingpai.com/upload/file/2019/bbfc6d30-c8fe-4f87-b4b5-46d637f49a93.png)
2. 添加两个需要进行参数化的变量,变量名自定义分别为mobilephone、name;对应的value值填上需要注册的用户手机号码及名字信息 ![image.png](http://testingpai.com/upload/file/2019/e4fe68b3-f07d-4cc0-9e41-14729b0636cf.png)
3. 分别对register、login请求中参数进行变量引用。${Properties#mobilephone}变量引用的固定写法${变量名},Properties#mobilephone表示Properties中定义的mobilephone变量,${Properties#name}同理

image.png
image.png


4. 双击TestCase运行查看结果

image.png
image.png




### 2、DataSource

官方文档:https://www.soapui.org/docs/data-driven-tests/reference/datasources.html

右键Test Steps-->Add Step-->DataSource

image.png


**数据源类型**

image.png

以上我们讲两种常用到的数据源类型



1)DataSource之Excel


a、例如我们需要批量注册多个用户,先准备包含多个注册用户信息的excel ![image.png](http://testingpai.com/upload/file/2019/a374bbc0-9bbc-4d8d-8921-113e949419e3.png)
b、DataSource中按照如下1、2、3步去添加并测试获取数据是否正确 ![image.png](http://testingpai.com/upload/file/2019/e9127c36-c30b-43e4-9829-1ed837159035.png)
c、右键Test Steps-->Add Step-->DataSource Loop, 添加在循环register请求之后。并且设置DataSource Loop的数据来源步骤、目标step是register ![image.png](http://testingpai.com/upload/file/2019/f76eeaa7-1b7f-4647-8d24-66c72deb4fc7.png)
d、进行register请求中参数的变量引用 ![image.png](http://testingpai.com/upload/file/2019/5bae0557-8a59-455e-8544-5b103c85a305.png)
e、双击TestCase,运行查看结果循环4次 ![image.png](http://testingpai.com/upload/file/2019/7aba08c3-723c-494d-ae03-e1c8e7a1acd0.png) ![image.png](http://testingpai.com/upload/file/2019/726498b2-7b50-41a8-97d3-379f9276fc77.png)

2)DataSource之JDBC

例如需要从数据库获取到用户账号信息完成登录,这里我们主要从数据库获取手机号码mobilephone


a、DataSource中数据源类型选择JDBC,并进行如下对应设置 ![image.png](http://testingpai.com/upload/file/2019/e671fd09-04b6-48f3-b31d-dda9c247df1c.png)

设置完后测试下连接,成功。
image.png

测试不成功请注意:连接数据库需要用到驱动jar包,soapui本身不自带,需要自己下载后放到soapui安装目录的lib目录下。不同数据库驱动不一样。
image.png


b、在SQL Query中输入要查询的sql语句,select mobilephone from member order by id desc;

并且添加properties参数mobilephone,点击运行,能看到已经成功获取数据库的值
image.png


c、进行login请求中参数的变量引用 ![image.png](http://testingpai.com/upload/file/2019/cbd569eb-ac7b-4826-a26a-70639b1052af.png)
d、在login请求后右键Test Steps-->Add Step-->添加DataSource Loop,并设置Loop,目标step是login ![image.png](http://testingpai.com/upload/file/2019/2d4ce4fe-2a0a-466a-aa7e-72936a879c7e.png)
e、双击TestCase,运行查看结果,循环36次获取到数据库的所有手机号并完成了登录 ![image.png](http://testingpai.com/upload/file/2019/59e9d598-d69c-4814-b86d-88b77efb6372.png)

ps:若不想将获取到的所有数据完成循环,DataSource进行下数据读取设置

image.png


运行后,只循环5次 ![image.png](http://testingpai.com/upload/file/2019/c21668db-d8b1-41e6-ab73-e7cfc5f11ea1.png)

soapui的常用参数化方式就整理到这,希望大家学有所用

1 操作
potato 在 2020-08-13 10:04:24 更新了该帖
回帖
请输入回帖内容 ...