SoapUI实践自动化测试压力测试持续集成-51Testing

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SoapUI实践:自动化测试、压力测试、
持续集成
因为项目的原因,前段时间研究并使用了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 举例:
参照下图需要在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 支持的最大字符个数:
4. 为解决上述不能超过65535个字符的问题,则需要为接口添加Script Assertion,如下代码,表示将本地文件GetOverview 01.txt 中的内容与请求返回中HtmlOfPartialView 属性的值进行对比,判断两者内容是否相等:
5. 双击Test Case,出现如下图,点击按钮,或者选中Login 右键选择”Run from here”,则依次执行Test Steps 步骤,如图所示,出现红色背景Failed 字样,查看右下角TestCase Log 框,可以看出是由于Step 4 GetOverview
接口请求的响应时间1272ms 大于断言中设置的时间500ms:
发送邮件功能
当你希望某个接口请求的结果以邮件方式通知给你时,如下图所示,右键Test Steps -> Add Step -> Groovy Script,添加Send Email 脚本,其中Username 和Password 分别是公司邮件服务器的账户和密码,Internet Address 即为接收的邮箱地址。

”${teacher-test#TestCase#Getoverview#Response}”的顺序依次为
Test Suite name # Test Case name # Test Step name # Response:
压力测试
以上是功能性测试,接下来是压力测试,右键Load Tests 创建测试用例,
Limit:60 即为压力测试的时间60s,Thread 表示多线程,可以同时运行5个线程,Test Delay * Radom,表示随机延迟的时间数。

min 表示最小响应时间,max 表示最大响应时间,avg 为平均响应时间,last 表示上一次请求响应时间,cnt 表示请求数,tps 表示每秒处理请求数,bps 表示吞吐率,rat 表示错误率。

右键可以为请求添加断言,Max Errors 设置最大的错误数,Step Average 设置期望的平均时间,其他的依次类推:
如下图,可以选择不同策略的负载和性能测试:
最常用的是简单策略(Simple),如果你想运行功能测试,并想在10秒内延迟5个线程,则Threads 设置为5,延迟1000s,随机延迟比率0.5(即将导致延误5至10秒)。

方差策略(Variance),Threads 为方差的线程数量,Interval 为间隔设置所需的值。

例如设置20个线程,间隔60和方差0.8,线程的数量将在第一个15秒从20增加到36,然后又减少到20,45秒后继续减少到4个线程,最后等到60秒时返回到初始值20。

在统计图中我们很容易遵循这个方差:
线性策略(Thread),从一个线程到另一个线程的数量的运行。

它的主要功能是确定某些统计数据变化或事件发生时的水平,例如设置开始和结束线程值(例如1 - 10),并设置持续时间(此例中每个线程至少30秒)获得准确的测量数据:
持续集成
在UI界面进行持续集成:右键项目名称REST Project 1 -> 选择Launch TestRunner,出现如下图,在Basic Tab 页选择TestRunner 安装路径:
在Reports Tab 页选择报告输出文件夹:
点击Launch 按钮,自动执行测试项目。

通过执行命令进行持续集成,以管理员身份打开Command Prompt 对话框,执行如下命令:
testrunner.bat -s'teacher-test' -cLogin -r -j -f'D:\Trivals\SoapUI\Logs'
D:\Trivals\SoapUI\REST-Project-1-project.xml
该命令行的各个参数含义如下:
∙s : The TestSuite to run, used to narrow down the tests to run
∙ c : The TestCase to run, used to narrow down the tests to run
∙r : Turns on printing of a small summary report (see below)
∙j : Turns on exporting of JUnit-compatible reports, see below
∙ f : Specifies the root folder to which test results should be exported
其他更多的参数设置,请参考SoapUI 官网地址:
https:///test-automation/running-functional-tests.html
本文概要介绍了SoapUI 工具的基本使用方法,也欢迎感兴趣的读者留言补充SoapUI 的更多功能使用方法,大家共同学习进步。

相关文档
最新文档