扣丁學堂淺談2018年流行的軟件測試工具詳解
2018-01-19 15:04:09
2438瀏覽
今天扣丁學堂給大家詳細介紹一下關(guān)于流行的
軟件測試培訓工具介紹之接口測試詳解,下面我們一起來看下吧。
POSTMAN(推薦)
Postman的主要功能模擬各種HTTP請求:從常用的GET,POST到基于REST的PUT,DELETE...等等甚至還可以送出檔案,送出額外的頭。
收集功能:收集是請求的集合,在做完單一個測試的時候,你可以把這次的要求存到特定的收藏里面,如此一來,下次要測試的時候,就不需要重新輸入。
養(yǎng)成習慣以后,網(wǎng)站API的每個方法都寫好存進去,以后在開發(fā)的時候,就可以迅速得看到結(jié)果。而收藏還可以導入或是分享出來,讓團隊里面的其他人,可以一起使用你建立起來的集合。
整理過後的回傳結(jié)果:一般在用其他工具來測試的時候,回傳的東西通常都是純文字的生的,但如果是JSON,就是塞成一整行的JSON。這會造成閱讀時的障礙,而Postman可以針對回傳資料的格式自動美化,JSON,XML或是HTML都會整理成人類可以閱讀的型態(tài)。
設(shè)定環(huán)境:Postman可以自由新增環(huán)境,一般我們可能會有多種環(huán)境,發(fā)展,分期或地方,而這幾種環(huán)境的請求的URL也各不相同新增環(huán)境,可以讓我們設(shè)定一些環(huán)境變數(shù),使得切換環(huán)境測試的時候,不用重寫請求。
另外還支持使用js自定義測試腳本,測試結(jié)果還可以存儲在云端。
HTTPie(推薦)
HTTPie是HTTP的命令行客戶端。其目標是讓CLI和web服務(wù)之間的交互盡可能的人性化。
這個工具提供了簡潔的http命令,允許通過自然的語法發(fā)送任意HTTP請求數(shù)據(jù),展示色彩化的輸出。HTTPie可用于與HTTP服務(wù)器做測試、調(diào)試和常規(guī)交互。
主要特性:
直觀的語法
格式化和色彩化的終端輸出
內(nèi)置JSON支持
表單和文件上傳
HTTPS、代理和認證
任意請求數(shù)據(jù)
自定義頭部
持久性會話
類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://m.dionly.net.cn/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://m.dionly.net.cn/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://m.dionly.net.cn/testing/"
}
curl
背景
越來越多的應(yīng)用程序遷移到Web上,為此大量需要HTTP腳本自動地從網(wǎng)絡(luò)中提取信息,模擬用戶post或上傳數(shù)據(jù)到web服務(wù)器。
Curl是用于做各種URL操作和傳輸?shù)拿钚泄ぞ?。本文關(guān)注HTTP請求。并假定你已經(jīng)會使用'curl--help'或'curl--manual'獲取幫助。
Curl主要負責發(fā)送數(shù)據(jù)和獲取返回,更復(fù)雜的功能比如循環(huán)請使用python之類的腳本語言。
HTTP協(xié)議
HTTP是用來從Web服務(wù)器獲取數(shù)據(jù)的協(xié)議。它是基于TCP/IP非常簡單的協(xié)議。該協(xié)議還允許信息從客戶端發(fā)送到服務(wù)器。
HTTP是客戶端發(fā)送到服務(wù)器請求特定的動作的普通ASCII文本行以及服務(wù)器返回實際內(nèi)容前的幾行。
Curl發(fā)送一個HTTP請求。該請求包含方法(如GET,POST,HEAD等),請求頭,有時還有請求體。HTTP服務(wù)器響應(yīng)包含狀態(tài)行,響應(yīng)頭和通常有body。body部分是你請求的明文數(shù)據(jù)比如實際的HTML或圖像等。
查看協(xié)議
使用curl的選項--verbose(-v的縮寫)會顯示curl發(fā)送到服務(wù)器的命令及其他文本信息。
--trace和--trace-ASCII甚至提供了更多細節(jié)。
*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.#
<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">
...
查看響應(yīng)
默認情況下curl發(fā)送響應(yīng)到stdout??梢允褂?o或-O重定向。
URL
統(tǒng)一資源定位符的格式是互聯(lián)網(wǎng)上資源的地址。
域名解析
主機名使用DNS解析或/etc/hosts解析為IP地址,也可以在URL中指定IP地址,而不是名稱來指定IP地址。
通過--resolve可以自定義域名解析:對于開發(fā)等嘗試的情況下,你可以點出一個不同的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/
抓取網(wǎng)頁
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)可以額外顯示響應(yīng)頭。
HEAD
--head(-I)只請求頭部。但是有些網(wǎng)站未必支持。
表單
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
上面內(nèi)容默認使用application/x-www-form-urlencoded類型。如果需要使用未編碼的數(shù)據(jù):
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>
執(zhí)行方式:
curl--formupload=@localfilename--formpress=OK[URL]
以上就是扣丁學堂關(guān)于流行的軟件測試工具介紹的詳細介紹,最后想要了解更多關(guān)于軟件測試發(fā)展前景趨勢,請關(guān)注扣丁學堂官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權(quán)威的
軟件測試視頻教程系統(tǒng),通過千鋒扣丁學堂金牌講師在線錄制的第一套自適應(yīng)軟件測試在線視頻課程系統(tǒng),讓你快速掌握軟件測試從入門到精通開發(fā)實戰(zhàn)技能。
【關(guān)注微信公眾號獲取更多學習資料】
查看更多關(guān)于“軟件測試技術(shù)資訊”的相關(guān)文章>>
標簽:
軟件測試培訓
軟件測試工程師
軟件測試在線視頻
軟件測試視頻教程
軟件測試教程