因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。
SoapUI 是什么?
SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到 Eclipse,maven2.X,Netbeans 和 intellij 中使用。
SoapUI 的安装
下载地址,最好下载最新版本安装包,因为 SoapUI 是基于 java 开发的测试工具,3.0 以前版本的安装包没有集成 JRE,这样就得自己安装和配置 java 运行环境了。
SoapUI 的使用
1. 在主界面 File 菜单,点击“New REST Project”,填写你想要测试的url,根据我们的项目 Teacher Site 中的 url 举例:https://teacher-test.grapecitydev.com:
参照下图需要在 Resource 输入框输入 /Login/Login 路由,并在 Params 中输入登录时需要的查询参数 accountName 和 password。
2. 点击绿色按钮,SoapUI 发送登录请求,可以在右侧框中看到登录请求返回的结果。
根据 Teacher site 项目的业务需求,发送 Login 请求完成后还得发送 SchoolItemChange 接口才会返回用户登录成功后认证的 Token,如下图中 Set-Cookie 的值将会在下一个 GetOverview 接口的请求头中 Cookie 属性使用:
3. 接下来的第三个请求 GetOverview 如下图,在 Header 框中添加 Cookie 属性,值就是上一个请求 SchoolItemChange 返回的 Set-Cookie 值:
自动化测试
其实以上三个接口的调用,只是简单的测试接口是否调用正常,如果想要对三个接口的调用进行自动化测试,请看下面的分解:
1. 右键每一个接口下的 Request 请求,如图所示,选择”Add TestCase”项,依次为以上三个接口设置 Test Case,在 TestSteps 下分别有 Login,SchoolItemChange,GetOverview 三个 TestCases。
2. 大家有没有发现,在 Test Steps 下多了个 Set Cookie 项,这是干什么的呢?
这是通过 Groovy Script 语法,获取上一个请求的返回值(此处是获取 SchoolItemChange 接口的返回值”Set-Cookie”),并将”Set-Cookie”属性值赋予下一个请求 GetOverview 的请求头 Cookie 中,是不是和第2,3条很应景啊?!这样就很好的解决了接口自动化测试,不用复制粘贴请求之间依赖的返回值。
3. 接下来,就要为测试的接口添加 Assertion 断言,点击左下角的,弹出 Add Assertion 对话框,根据断言注解,选择需要的测试点,例如 Response SLA 表示请求发送后期望的响应时间:
Contains Assertion 则表示请求返回的字符串中包含指定的字符串。此断言适用对比的内容不超过65535个字符,因为 Soapui 基于 java 语言编写,这是 jvm 支持的最大字符个数: