在正常的測試中,當(dāng)我們需要進(jìn)行接口測試時,通常使用接口調(diào)試工具,如postman進(jìn)行接口測試
成都創(chuàng)新互聯(lián)是一家專業(yè)提供班瑪企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為班瑪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
目前我在嘗試使用Go語言進(jìn)行接口測試,使用的庫均為Go自帶的庫。
注:當(dāng)前采用的接口為時事新聞接口,每天可以請求100次,需要的同學(xué),可以自行使用。
接口像是一個公司里面的領(lǐng)導(dǎo),他會定義一些通用規(guī)范,只設(shè)計規(guī)范,而不實現(xiàn)規(guī)范。
go語言的接口,是一種新的類型定義,它把所有的具有共性的方法定義在一起,任何其他類型只要實現(xiàn)了這些方法就是實現(xiàn)了這個接口。
語法格式和方法非常類似。
在接口定義中定義,若干個空方法。這些方法都具有通用性。
下面我定義一個USB接口,有讀read和寫write兩個方法,再定義一個電腦Computer和一個手機(jī)Mobile來實現(xiàn)這個接口。
USB接口
Computer結(jié)構(gòu)體
Mobile結(jié)構(gòu)體
Computer實現(xiàn)USB接口方法
Mobile實現(xiàn)USB接口方法
測試
運行結(jié)果
下面我們定義一個OpenClose接口,里面有兩個方法open和close,定義個Door結(jié)構(gòu)體,實現(xiàn)其中一個方法。
import "workname/packetfolder"
導(dǎo)入多個包
方法調(diào)用 包名.函數(shù)//不是函數(shù)或結(jié)構(gòu)體所處文件或文件夾名
packagename.Func()
前面加個點表示省略調(diào)用,那么調(diào)用該模塊里面的函數(shù),可以不用寫模塊名稱了:
當(dāng)導(dǎo)入一個包時,該包下的文件里所有init()函數(shù)都會被執(zhí)行,然而,有些時候我們并不需要把整個包都導(dǎo)入進(jìn)來,僅僅是是希望它執(zhí)行init()函數(shù)而已。下劃線的作用僅僅是為了調(diào)用init()函數(shù),所以無法通過包名來調(diào)用包中的其他函數(shù)
import _ package
變量聲明必須要使用否則會報錯。
全局變量運行聲明但不使用。
func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值a 類型a, 返回值b 類型b,...)
func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值類型1, 返回值類型2,...)
func (this *結(jié)構(gòu)體名) 函數(shù)名(參數(shù) string) (返回值類型1, 返回值類型2){}
使用大小來區(qū)分函數(shù)可見性
大寫是public類型
小寫是private類型
func prifunc int{}
func pubfunc int{}
聲明靜態(tài)變量
const value int
定義變量
var value int
聲明一般類型、接口和結(jié)構(gòu)體
聲明函數(shù)
func function () int{}
go里面所有的空值對應(yīng)如下
通道類型
內(nèi)建函數(shù) new 用來分配內(nèi)存,它的第一個參數(shù)是一個類型,不是一個值,它的返回值是一個指向新分配類型零值的指針
func new(Type) *Type
[這位博主有非常詳細(xì)的分析]
Go 語言支持并發(fā),我們只需要通過 go 關(guān)鍵字來開啟 goroutine 即可。
goroutine 是輕量級線程,goroutine 的調(diào)度是由 Golang 運行時進(jìn)行管理的。
同一個程序中的所有 goroutine 共享同一個地址空間。
語法格式如下:
通道(channel)是用來傳遞數(shù)據(jù)的一個數(shù)據(jù)結(jié)構(gòu)。
通道的聲明
通道可用于兩個 goroutine 之間通過傳遞一個指定類型的值來同步運行和通訊。操作符 - 用于指定通道的方向,發(fā)送或接收。如果未指定方向,則為雙向通道。
[這里有比較詳細(xì)的用例]
go里面的空接口可以指代任何類型(無論是變量還是函數(shù))
聲明空接口
go里面的的強(qiáng)制類型轉(zhuǎn)換語法為:
int(data)
如果是接口類型的強(qiáng)制轉(zhuǎn)成其他類型的語法為:
go里面的強(qiáng)制轉(zhuǎn)換是將值復(fù)制過去,所以在數(shù)據(jù)量的時候有比較高的運行代價
看【Go語言實戰(zhàn)】這本書第二遍了,看第一遍的時候只是留下個印象,為了加深記憶以及方便回顧,把自己的理解寫出來,僅供參考,Go Go Go,開始
接口是用來定義行為的類型。這些被定義的行為不由接口直接實現(xiàn),而是通過方法由用戶 定義的類型實現(xiàn)。如果用戶定義的類型實現(xiàn)了某個接口類型聲明的一組方法,那么這個用戶定 義的類型的值就可以賦給這個接口類型的值。這個賦值會把用戶定義的類型的值存入接口類型 的值。
1、如果參數(shù)類型是指針,那么在調(diào)用的時候也必須傳遞指針地址,因為編譯器不是總能自動獲取一個值的地址
2、如果參數(shù)類型是值,那調(diào)用的時候傳值或者指針都可以,因為通過指針可以獲取到對應(yīng)的值
1、定義一個接口,接口中定義一個方法,所有想要實現(xiàn)該接口的類型,必須先實現(xiàn)接口中的方法
2、定義一個類型,并為該類型以接收者方式實現(xiàn)【步驟1】中的接口方法
3、聲明一個多態(tài)方法,接收的參數(shù)類型為【步驟1】中定義的接口類型
4、調(diào)用該多態(tài)方法,并把【步驟2】中定義的類型作為參數(shù)傳遞給【步驟3】中聲明的多態(tài)方法,由多態(tài)方法來調(diào)用接口方法