扣丁学堂浅谈2018年流行的软件测试工具详解

2018-01-19 15:04:09 1206浏览

  今天扣丁学堂给大家详细介绍一下关于流行的软件测试培训工具介绍之接口测试详解,下面我们一起来看下吧。



POSTMAN(推荐)

Postman的主要功能模拟各种HTTP请求:从常用的GET,POST到基于REST的PUT,DELETE...等等甚至还可以送出档案,送出额外的头。

收集功能:收集是请求的集合,在做完单一个测试的时候,你可以把这次的要求存到特定的收藏里面,如此一来,下次要测试的时候,就不需要重新输入。

养成习惯以后,网站API的每个方法都写好存进去,以后在开发的时候,就可以迅速得看到结果。而收藏还可以导入或是分享出来,让团队里面的其他人,可以一起使用你建立起来的集合。

整理過後的回傳結果:一般在用其他工具來測試的時候,回傳的東西通常都是純文字的生的,但如果是JSON,就是塞成一整行的JSON。这会造成阅读时的障碍,而Postman可以针对回传资料的格式自动美化,JSON,XML或是HTML都会整理成人类可以阅读的型态。

设定环境:Postman可以自由新增环境,一般我们可能会有多种环境,发展,分期或地方,而这几种环境的请求的URL也各不相同新增环境,可以让我们设定一些环境变数,使得切换环境测试的时候,不用重写请求。

另外还支持使用js自定义测试脚本,测试结果还可以存储在云端。

HTTPie(推荐)

HTTPie是HTTP的命令行客户端。其目标是让CLI和web服务之间的交互尽可能的人性化。

这个工具提供了简洁的http命令,允许通过自然的语法发送任意HTTP请求数据,展示色彩化的输出。HTTPie可用于与HTTP服务器做测试、调试和常规交互。

主要特性:

直观的语法

格式化和色彩化的终端输出

内置JSON支持

表单和文件上传

HTTPS、代理和认证

任意请求数据

自定义头部

持久性会话

类Wget下载

支持Python2.6,2.7和3.x

支持Linux,MacOSX和Windows

插件

文档

测试覆盖率

HTTPie是用Python编写,用到了Requests和Pygments这些出色的库。

使用HTTPGET方法时,就无需明确指定HTTP方法。

#httphttpie.org

HTTP/1.1302Found

Connection:close

Content-Length:292

Content-Type:text/html;charset=iso-8859-1

Date:Wed,04May201602:11:06GMT

Location:http://www.codingke.com/testing/

Server:Apache/2.2.15(CentOS)

X-Awesome:ThanksfortryingHTTPie:)

<!DOCTYPEHTMLPUBLIC"-//IETF//DTDHTML2.0//EN">

<html><head>

<title>302Found</title>

</head><body>

<h1>Found</h1>

<p>Thedocumenthasmoved<ahref="http://www.codingke.com/testing/">here</a>.</p>

<hr>

<address>Apache/2.2.15(CentOS)Serverathttpie.orgPort80</address>

</body></html>

查看头部

HTTP/1.1200OK

Connection:keep-alive

Content-Length:0

Date:Wed,04May201602:57:34GMT

Server:Tengine

Set-Cookie:aliyungf_tc=AQAAAB6D8xIlBgUAY0NpccWR0vhW8yqz;Path=/;HttpOnly

POST

HTTP/1.1200OK

Access-Control-Allow-Credentials:true

Access-Control-Allow-Origin:*

Connection:keep-alive

Content-Length:441

Content-Type:application/json

Date:Wed,04May201602:20:37GMT

Server:nginx

{

"args":{},

"data":"",

"files":{},

"form":{

"key1":"value1",

"key2":"values"

},

"headers":{

"Accept":"*/*",

"Accept-Encoding":"gzip,deflate",

"Content-Length":"23",

"Content-Type":"application/x-www-form-urlencoded;charset=utf-8",

"Host":"httpbin.org",

"User-Agent":"HTTPie/0.9.3"

},

"json":null,

"origin":"113.105.67.99",

"url":"http://www.codingke.com/testing/"

}

curl

背景

越来越多的应用程序迁移到Web上,为此大量需要HTTP脚本自动地从网络中提取信息,模拟用户post或上传数据到web服务器。

Curl是用于做各种URL操作和传输的命令行工具。本文关注HTTP请求。并假定你已经会使用'curl--help'或'curl--manual'获取帮助。

Curl主要负责发送数据和获取返回,更复杂的功能比如循环请使用python之类的脚本语言。

HTTP协议

HTTP是用来从Web服务器获取数据的协议。它是基于TCP/IP非常简单的协议。该协议还允许信息从客户端发送到服务器。

HTTP是客户端发送到服务器请求特定的动作的普通ASCII文本行以及服务器返回实际内容前的几行。

Curl发送一个HTTP请求。该请求包含方法(如GET,POST,HEAD等),请求头,有时还有请求体。HTTP服务器响应包含状态行,响应头和通常有body。body部分是你请求的明文数据比如实际的HTML或图像等。

查看协议

使用curl的选项--verbose(-v的缩写)会显示curl发送到服务器的命令及其他文本信息。

--trace和--trace-ASCII甚至提供了更多细节。

*Abouttoconnect()toautomationtesting.sinaapp.comport80(#0)

*Trying113.17.175.80...

*Connectedtoautomationtesting.sinaapp.com(113.17.175.80)port80(#0)

>GET/HTTP/1.1

>User-Agent:curl/7.29.0

>Accept:*/*

>

<HTTP/1.1200Ok

<Server:nginx

<Date:Tue,19Aug201406:48:37GMT

<Content-Type:text/html;charset=utf-8

<Transfer-Encoding:chunked

<Connection:keep-alive

<X-Powered-By-360WZB:wangzhan.360.cn

<via:yq26.pyruntime

<VAR-Cache:MISS

<cache-control:max-age=14400

<age:0

<

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

...

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

...

查看时间

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

...

查看响应

默认情况下curl发送响应到stdout。可以使用-o或-O重定向。

URL

统一资源定位符的格式是互联网上资源的地址。

域名解析

主机名使用DNS解析或/etc/hosts解析为IP地址,也可以在URL中指定IP地址,而不是名称来指定IP地址。

通过--resolve可以自定义域名解析:对于开发等尝试的情况下,你可以点出一个不同的IP地址,比原本可以使用,用卷曲的--resolve选项的主机名:

<!doctypehtml>

<html>

<head>

<title>ExampleDomain</title>

<metacharset="utf-8"/>

<metahttp-equiv="Content-type"content="text/html;charset=utf-8"/>

<metaname="viewport"content="width=device-width,initial-scale=1"/>

<styletype="text/css">

body{

background-color:#f0f0f2;

margin:0;

padding:0;

font-family:"OpenSans","HelveticaNeue",Helvetica,Arial,sans-serif;

端口和代理

#curl--proxyhttp://proxy.example.org:4321http://remote.example.org/

用户名和密码

#curlhttp://user:password@example.org/

#curl-uuser:passwordhttp://example.org/

抓取网页

GET

#curlhttp://curl.haxx.se

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>curlandlibcurl</title>

#curl-ihttp://curl.haxx.se

HTTP/1.1200OK

Date:Tue,19Aug201407:35:43GMT

Server:Apache/2.4.9(Debian)

Last-Modified:Tue,19Aug201407:25:16GMT

ETag:"238f-500f6639411b0"

Accept-Ranges:bytes

Content-Length:9103

Vary:Accept-Encoding

Content-Type:text/html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

--include(-i)可以额外显示响应头。

HEAD

--head(-I)只请求头部。但是有些网站未必支持。

表单

GET

<formmethod="GET"action="junk.cgi">

<inputtype=textname="birthyear">

<inputtype=submitname=pressvalue="OK">

</form>

输入'1905',点击OK,会生成"junk.cgi?birthyear=1905&press=OK"之类的东东。比如第一页是"www.hotmail.com/when/birth.html",第2也可能是"www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"。

#curl"http://www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"

<html><head><title>Objectmoved</title></head><body>

<h2>Object

movedto<a


</body></html>

POST

POST的保密性更好:

#curl--data"key1=value1&key2=values"http://httpbin.org/post

{

"args":{},

"data":"",

"files":{},

"form":{

"key1":"value1",

"key2":"values"

},

"headers":{

"Accept":"*/*",

"Content-Length":"23",

"Content-Type":"application/x-www-form-urlencoded",

"Host":"httpbin.org",

"User-Agent":"curl/7.29.0"

},

"json":null,

"origin":"116.31.94.43",

"url":"http://httpbin.org/post"

}

更多实例:

curl--data"birthyear=1905&press=%20OK%20"http://www.example.com/when.cgi

上面内容默认使用application/x-www-form-urlencoded类型。如果需要使用未编码的数据:

curl--data-urlencode"name=IamDaniel"http://www.example.com

文件上传POST

定义在RFC1867中:

<formmethod="POST"enctype='multipart/form-data'action="upload.cgi">

<inputtype=filename=upload>

<inputtype=submitname=pressvalue="OK">

</form>

执行方式:

curl--formupload=@localfilename--formpress=OK[URL]

以上就是扣丁学堂关于流行的软件测试工具介绍的详细介绍,最后想要了解更多关于软件测试发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的软件测试视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的第一套自适应软件测试在线视频课程系统,让你快速掌握软件测试从入门到精通开发实战技能。





扣丁学堂微信公众号



关注微信公众号获取更多学习资料



查看更多关于“软件测试技术资讯的相关文章>>


标签: 软件测试培训 软件测试工程师 软件测试在线视频 软件测试视频教程 软件测试教程

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号