常用接口测试工具 Postman VS SoapUI测试用例分享

发布时间: 编辑:CINDY 0人评论 6899次浏览 实用方法教程
摘要 : 常用接口测试工具 Postman VS SoapUI测试用例分享
其实市面上做接口测试的工具很多,为啥挑这两个来讲解了,重点是真心好用。好了,废话不多说,直接上干货。相信有一定了解的人都知道这两个工具应用最广泛的就是接口测试,既然提到接口测试那我们不得不先普及下什么是接口,接口测试又是啥?我们常说的接口一般指下面两种:
1、API:应用程序编程接口。程序间的接口

2、GUI:图形用户界面。人与程序的接口

接口测试的工具

我们这里说的接口测试主要指API接口测试,API接口分类一般有如下几种:

· HTTP接口
· Webservice接口
· RESTful接口
HTTP,RESTful接口走HTTP协议,通过路径来区分调用的方法,请求报文入参有多种形式,返回报文一般为json串,最常见的是get和post方法。
WebService接口是走soap协议,请求报文和返回报文都是xml格式。
而Postman和SopaUI支持的接口类型如下:
因此,我们需要先辨别项目前后端是用何种接口交互再来选取相应的接口测试工具。接口测试又是啥?
接口测试就是模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答然后对应答做一些校验的过程。

下面我们分别介绍下如何用PostMan和SoapUI做接口自动化测试。

A:Postman+Newman+Jenkins实现接口自动化测试

1.安装Postman,编写API接口测试用例
示例:豆瓣公开查找书籍接口
常用接口测试工具 Postman VS SoapUI测试用例分享
2.导出Collection(项目-接口用例),安装NewMan,用NewManCommand运行Collection并输出HTML报告。
C:\Users\Li.Shi\AppData\Roaming\npm\newmanrunC:\Users\Li.Shi\Desktop\PostMan\LiShiTest.postman_collection.json--reporterscli,json--reporterscli,html--reporter-html-exporthtmlOut.html
常用接口测试工具 Postman VS SoapUI测试用例分享
3.安装部署Jenkins,其中Jenkins的配置如下:
常用接口测试工具 Postman VS SoapUI测试用例分享
至此,我们可完成基于postman和Jenkins的自动化接口测试。

B:SoapUI+UnitTest 实现接口自动化测试

1.安装SoapUI,自行创建一个可运行的SoapUI的Project,得到项目XML文件.eg:DeviceReportService-soapui-project.xml
2.用VS(Visual Studio)创建一个Unit Test Project.添加reference,Check System, System.Configuration, System.Core, System.Data
3.添加app config文件,指定soapUI TestRunner.exe所在路径.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="SoapUIHome" value="C:\Program Files\SmartBear\SoapUI-5.3.0\bin"/>
</appSettings>
</configuration>
4.添加SoapUIRunner公共类,通过新建Process去调用TestRunner.exe命令进而运行SoapUI的case.
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SoapUI
{
public class SoapUIRunner
{
public void RunSoapUItest(string soapProject,string testSuiteName,string testName,string report,string set)
{
const string fileName = "cmd.exe";
var soapProjectFileName = Path.GetFullPath(soapProject);
var arguments = string.Format("/C testrunner.bat -s\"{0}\" -c\"{1}\" \"{2}\" -r -a -f\"{3}\" -t\"{4}\" ", testSuiteName, testName, soapProjectFileName, report, set);
var soapHome = System.Configuration.ConfigurationManager.AppSettings["SoapUIHome"];
//start a process and hook up the in/output
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = fileName,
Arguments = arguments,
WorkingDirectory = soapHome,
Verb = "runas",
CreateNoWindow = true,
ErrorDialog = false,
RedirectStandardError= true,
RedirectStandardOutput = true,
UseShellExecute = false
},
EnableRaisingEvents = true
};
//pipe the output to console.writeline
process.OutputDataReceived += (sender, args) =>
Console.WriteLine(args.Data);
var errorBuilder = new StringBuilder();
//store the errors in a stringbuilder
process.ErrorDataReceived += (sender, args) =>
{
if (args != null && args.Data != null)
{
errorBuilder.AppendLine(args.Data);
}
};
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
//wait for soapUI to finish
process.WaitForExit();
//fail the test if anything fails
var errorMessage = errorBuilder.ToString();
if(!string.IsNullOrEmpty(errorMessage))
{
Assert.Fail("Test with name '{0}' failed. {1} {2}", testName, Environment.NewLine, errorMessage);
}
}
}
}
5.通过Unit Test调用SoapUI TestSuit, 进而可以运用bat命令集成运行TestCase. 做到接口的自动化测试。
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace SoapUI
{
[TestClass]
[DeploymentItem(@"soapUIFiles\DeviceReportService-soapui-project.xml", "TestData\\soapUIFiles")]
public class DeviceReport:SoapUIRunner
{
private string testCaseSuiteName = "BasicHttpBinding_DeviceReport TestSuite";
private string soapProjectFile= @"TestData\\soapUIFiles\\DeviceReportService-soapui-project.xml";
private string reportFile = @"C:\Users\" + Environment.UserName + "\\Desktop\\TestReport";
private String SoapUISettingsFile = @"TestData\\soapUIFiles\\soapui-settings.xml";
private TestContext testContext;
public TestContext TestContext
{
get { return this.testContext; }
set { this.testContext = value; }
}
[TestMethod]
[TestCategory("DeviceReport")]
public void Device_Report()
{
RunSoapUItest(soapProjectFile, testCaseSuiteName, "DeviceReport TestCase", reportFile, SoapUISettingsFile);
}
}
}

接下来我们对比下用方式A和B做接口自动化的区别:

1.从上面的实现来看,SoapUI自动化需要测试人员有一定的编码能力,想比如Postman会对测试人员要求高些。
2.从两种工具用例组织方式来看:
SoapUI的组织方式如下图,最上层是WorkSpace,所以每个WorkSpace中可以打开多个Project,一个Project也可以在不同的WorkSpace中。
Project对应我们的测试项目,其中可添加WSDL、WADL资源、TestSuite以及MockService。
TestSuite对应我们的测试模块,比如商户中心,其中可以添加TestCase,TestCase对应我们对某个模块的不同接口,比如订单管理接口。而一个接口可以能需要多个Step完成,变量、数据源、请求等都是一个Step。

Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就相当于是Project,而Collection中可以创建不定层级的Folders,可以自己组织TestSuite。每个Request可以当做是一个TestCase或者Step:

3.从长期的团队协作来看:
SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git/TFS进行团队协作。支持性较好。
Postman:有团队协作的功能,需要付费。
因此从项目支持的接口类型,不同集成测试需求和后期维护来考虑,我们可以根据上面几点选择适合自己项目的接口自动化工具。
查看更多

转载必须注明来自:https://huajiakeji.com/utilities/2019-09/2908.html

PostWoman Http接口调试插件

PostWoman Http接口调试插件

0 人评论 11703 次人浏览 4.0分 4.0 分
Postwoman(原apiDebug) 是一个完全免费的接口调试插件,该插件可独立使用,同时数据也能同步至云端,实现跨终端共享。Postwoman支持post、get、xml、josn等测试,支持环境切换(全局变量)。
ApiPost中文接口测试软件

ApiPost中文接口测试软件

0 人评论 5577 次人浏览 4.0分 4.0 分
ApiPost是中国人自己的接口测试软件,是一个支持团队协作,并可直接生成文档的API调试、管理工具,支持模拟POST、GET、PUT等常见请求,是后台接口开发者或前端、接口测试人员不可多得的工具。
Postman使用教程详解

Postman使用教程详解

0 人评论 5444 次人浏览 4.0分 4.0 分
本文详细介绍Postman使用教程之接口请求测试流程GET、post和管理用例Collection的作用。
Talend API Tester

Talend API Tester

0 人评论 29174 次人浏览 4.0分 4.0 分
Talend API Tester插件使调用,发现和测试HTTP和REST API变得容易。
ApiPOST - API调试管理工具

ApiPOST - API调试管理工具

0 人评论 38714 次人浏览 4.0分 4.0 分
ApiPOST是一款可直接生成文档的API调试、管理工具。2.0版本大更新,支持自定义请求头(Request Header)、查看Cookie、导出Html及Word文档等更多功能。
Postman for Mac(v6.2.3)

Postman for Mac(v6.2.3)

0 人评论 15737 次人浏览 4.0分 4.0 分
Postman是一款基于不同操作系统提供功能强大的 Web API & HTTP 请求调试的工具。最新版本是8.2日发布的Postman Mac(v6.2.3)。
Postman for Linux(x86)

Postman for Linux(x86)

0 人评论 23387 次人浏览 4.0分 4.0 分
Postman for Linux(x86)是一款针对Linux系统x86架构的功能强大的网页调试与发送网页HTTP请求应用程序。
Postman for Win64(V6.0.10)

Postman for Win64(V6.0.10)

11 人评论 305628 次人浏览 3.0分 3.0 分
Postman for Win64(V6.0.10)是一款针对Win64系统的功能强大的网页调试与发送网页HTTP请求应用程序。
评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?