用例组织方式
SoapUI的组织方式如下,最上层是WorkSpace,每个窗口只可以打开一个WorkSpace,每个Project也是一个单独的xml文件,所以每个WorkSpace中可以打开多个Project,一个Project也可以在不同的WorkSpace中。
Project对应我们的测试项目,其中可添加WSDL、WADL资源、TestSuite以及MockService。
TestSuite对应我们的测试模块,比如商户中心,其中可以添加TestCase,TestCase对应我们对某个模块的不同接口,比如订单管理接口。而一个接口可以能需要多个Step完成,变量、数据源、请求等都是一个Step。
Jmeter的组织方式相对比较扁平,它首先没有WorkSpace的概念,直接是TestPlan,等价于SoapUI中的Project,TestPlan下创建的ThreadsGroup就相当于TestCase,并没有TestSuite的层级。
TheadsGroup中的Sampler、管理器等均相当于SoapUI中的一个Step,如下:
Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就相当于是Project,而Collection中可以创建不定层级的Folders,可以自己组织TestSuite。每个Request可以当做是一个TestCase或者Step:
支持的接口类型与测试类型
从功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。Postman更是轻量级,定位也不同,可用来测试Rest接口。
工具 | 接口类型 | 测试类型 |
SoapUI | Soap、Rest | 功能、压力、安全 |
Jmeter | Rest、Soap等 可扩展WebSocket、socket | 功能、压力 |
Postman | Rest | 功能 |
配置不同接口类型
SoapUI可以创建SoapProject或者RestProject,可添加wsdl、wadl资源,并能在TestCase里添加Rest或Soap的Step。
Jmeter可以在线程组里添加HTTP、TCP或WebSocket的Sampler。
Postman仅支持Rest接口。
自定义变量以及变量的作用域
除以下表格中所列的变量之外,每个工具都有系统变量,未列在内。
工具 | 变量类型 | 作用域 |
SoapUI | Project、TestSuite、TestCase的Properties以及Custom Properties | 各自以内的范围内 |
TestCase里的Properties | 在整个TestCase内 | |
TestCase里的Data Source、DataGen等 | 在整个TestCase内 | |
Groovy脚本定义 | 看定义方式 | |
Jmeter | TestPlan中用户定义的变量 | 所有Threads Group |
配置元件 - 用户定义的变量 | 根据元件位置而定 | |
CSV data set、random variable等 | 根据元件位置而定 | |
前置、后置处理器 | 当前Threads Group | |
Postman | Environment Variable | 当前环境的Collection |
Global Variable | 所有Collections | |
CSV/JSON datafile | Runner当前的Collection |
数据源、生成器,进行参数化
流程控制
SoapUI:由ConditioinalGoto控制流程,以及Groovy脚本
Jmeter:由Switch控制器、If控制器、随机控制器等一系列控制器实现流程控制,以及Beanshell脚本
Postman:通过JavaScript脚本控制
结果解析、展示
工具 | 结果 | 日志 | 报告 |
SoapUI | Project-OverView、TestSuites TestSuite-TestCases TestCase-TestSteps | SoapUI全局多种log TestSuite log TestCase log Request log | Project report TestSuite report TestCase report (PDF/HTML/XML/CSV) |
Jmeter | 各种监听器 | 统一的Jmeter log | 监听器可导出到文件 并可导出JTL、CSV文件、通过插件可导出HTML(Jmeter3自带) |
Postman | Send可查看Request的Response Runner可查看运行的Result | Postman console Chrome DevTools | Request的Response以及Runner的Result均可导出json |
断言
SoapUI:每个Request可添加Assertion
Jmeter:TestPlan、ThreadsGroup、Sampler均可添加断言
Postman:请求的Tests中可添加断言
脚本扩展能力
SoapUI:Groovy脚本
0.团队协作
SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git进行团队协作。支持性较好。
Jmeter:一个TestPlan也是一个jmx文件,无法分割,但Jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个TestPlan,分功能块进行测试。最后整理合并。
Postman:有团队协作的功能,需要付费。
欢迎指正,更多文章,请关注本人博客——灰蓝的博客。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点
Chin.2022-10-16
所以比较重要的一定,投资回报率能够软的清楚回报比较好。像现在的神华H价格,明年分红后价格可能跟净资产差不多了。因为未来的56年ROE大于15%,您是知道的。所以当出现了一些医药明星股,或者类似高科技这类腾讯,微软这些好股票,虽然好,但是存续多少年并不知道。15年前哪里知道有微信存在呢,但是15年前判断白酒的一些问题就比判断腾讯容易很多了。毕竟酒文化在中国太久了,有大量的资料可以参考。那么追根究底,还是投资回报率能不能算的问题,能算再看以多少价格买合适,您表达的意思可否这样了解?