国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例

這篇具有很好參考價(jià)值的文章主要介紹了【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

YAML

基本語法

對(duì)象:鍵值對(duì)的集合(key:value)

數(shù)組:一組按順序排列的值

字面量:單個(gè)的、不可再分的值(數(shù)字、字符串、布爾值)

yml 格式的測試用例

定義yml文件

創(chuàng)建結(jié)構(gòu)體

讀取yml文件中的用例數(shù)據(jù)

調(diào)試運(yùn)行

總結(jié)

資料獲取方法


我們?cè)谇懊鎺灼恼轮袑W(xué)習(xí)怎么發(fā)送數(shù)據(jù)請(qǐng)求,怎么處理解析接口返回的結(jié)果,接下來我們一起來學(xué)習(xí)怎么進(jìn)行測試用例管理,今天我們介紹的是使用yml文件進(jìn)行用例管理,所以首先我們一起來了解一下YAML和它的簡單用法。

YAML

YAML(Yet Another Markup Language),可能大家在工作中或多或少已經(jīng)接觸過這個(gè)文件格式。它是一種基于Unicode用來表達(dá)資料序列的編程語言,有易閱讀、易與腳本語言交互的特點(diǎn)。在博主所在項(xiàng)目接入了k8s之后,基本上所有的配置都使用的yml。

我覺得yml相比較于json文件格式最大的優(yōu)勢是支持注釋,而json數(shù)據(jù)定義是不支持注釋的,而且編寫格式上也較yml嚴(yán)格。下面我們一起來了解一下yml的語法。

基本語法

1、yml文件以縮進(jìn)代表層級(jí)關(guān)系
2、縮進(jìn)不允許使用tab只能使用空格
3、空格的個(gè)數(shù)不重要,只要相同層級(jí)的元素左對(duì)齊即可
4、大小寫敏感
5、數(shù)據(jù)格式為,名稱:(空格)值

對(duì)象:鍵值對(duì)的集合(key:value)
>  字符串不用使用雙引號(hào)或單引號(hào)圈起來
>   雙引號(hào)圈住時(shí)不會(huì)轉(zhuǎn)義字符串中的特殊字符
>  單引號(hào)圈住時(shí)會(huì)轉(zhuǎn)義字符串中的特殊字符
數(shù)組:一組按順序排列的值
>  數(shù)組名:
>             -元素1
>             -元素2
>  行內(nèi)寫法:
>         數(shù)組名:[元素1,元素2,元素3]
字面量:單個(gè)的、不可再分的值(數(shù)字、字符串、布爾值)

yml 格式的測試用例

定義yml文件

下面我們以登陸為例來編寫測試用例,將下面這些信息保存到testCase.yml中,我們的策四用力就完成了:

Testsuit: 登錄
description: 用戶中心登錄測試
commonparam: 
  username: name
  passwd: pwd
TestCases:
  - 
    url: /api/user/login
    detail: 正常登陸
    method: Get
    data:  
      username: name
      passwd: pwd
    check: 
      - pr
      - userId
  -
    url: /api/user/login
    detail: 密碼錯(cuò)誤
    method: post
    data:
      username: name
      passwd: pwd
    check:
      - 密碼錯(cuò)誤

  -
    url: /api/user/login
    detail: 必填參數(shù)未填,不填密碼
    method: post
    data:
      username: name
    check:
      - 必填參數(shù)未填
  -
    url: /api/user/login
    detail: 密碼錯(cuò)誤
    method: post
    data:
      username: name
      passwd: pwd
    check:
      - 密碼錯(cuò)誤
  -
    url: /api/user/login
    detail: 密碼錯(cuò)誤
    method: post
    data:
      username: name
      passwd: pwd
    check:
      - 密碼錯(cuò)誤

接下來我們一起來學(xué)習(xí)怎么讀取上面定義的用例信息。

創(chuàng)建結(jié)構(gòu)體

通過觀察上面的yml文件結(jié)合前面學(xué)習(xí)的yml的基礎(chǔ)語法我們可以很輕松的知道,TestCases的具體數(shù)據(jù)是一個(gè)個(gè)的數(shù)組,發(fā)送的數(shù)據(jù)也是一個(gè)個(gè)的數(shù)組,所以我們可以定義下面的結(jié)構(gòu)體來與之對(duì)應(yīng):

// TestSuit 測試用例結(jié)構(gòu)體
type TestSuit struct {
	testsuit    string
	description string
	TestCases   []struct {
		URL    string
		Detail string
		Method string
		Check  []string
		Data   struct {
			Username string `json:"username"`
			Passwd   string `json:"passwd"`
		}
	}

讀取yml文件中的用例數(shù)據(jù)

我們本次用來解析yml的是一個(gè)第三方庫,獲取方法:go get github.com/ghodss/yaml,先上代碼:

func main() {
	// 讀取數(shù)據(jù)并解析到j(luò)son中
	data, _ := ioutil.ReadFile("testCase.yml")
	t := TestSuit{}
	err := yaml.Unmarshal(data, &t)
	if err != nil {
		fmt.Println(err.Error())
	}
	j, _ := json.Marshal(t.TestCases)
	fmt.Println(string(j))

	// 遍歷yml文件中定義的test case信息
	for i := 0; i < len(t.TestCases); i++ {
		Path := t.TestCases[i].URL
		Method := t.TestCases[i].Method
		Param := t.TestCases[i].Data
		CheckData := t.TestCases[i].Check
		j, _ := json.Marshal(Param)
		fmt.Println("==================我是華麗的分割線==================")
		fmt.Println("請(qǐng)求參數(shù):", string(j))
		fmt.Println("請(qǐng)求路徑:", Path)
		upperMethod := strings.ToUpper(Method)
		// 檢驗(yàn)請(qǐng)求方式是否合法
		fmt.Println(upperMethod)
		fmt.Println(CheckMethod(upperMethod))
		fmt.Println("校驗(yàn)數(shù)據(jù):", CheckData)

		// 根據(jù)不同的請(qǐng)求方式選擇不同的請(qǐng)求URL
		if upperMethod == "POST" {
			_, body, _ := gorequest.New().Post(fmt.Sprintf("http://httpbin.org%s", Path)).
				Send(fmt.Sprintf("%s", string(j))).
				Set("Content-Type", "application/json").
				End()
			fmt.Println(body)
		} else if upperMethod == "GET" {
			fmt.Println(fmt.Sprintf("http://%s/%s", BaseURI, Path))
			_, body, _ := gorequest.New().Get(fmt.Sprintf("http://%s%s", BaseURI, Path)).
				Send(fmt.Sprintf("%s", string(j))).
				Set("Content-Type", "application/json").
				End()
			fmt.Println(body)
		}

	}
}

// CheckMethod 校驗(yàn)請(qǐng)求的方法是否正確
func CheckMethod(method string) bool {
	upperMethod := strings.ToUpper(method)
	if upperMethod == "POST" || upperMethod == "GET" {
		return true
	}
	return false
}

代碼中注視已經(jīng)給的比較清晰,這一次又是使用的http://httpbin.org進(jìn)行調(diào)試, 細(xì)心的小伙伴可能注意到了最后的那個(gè)函數(shù),對(duì)請(qǐng)求的方式進(jìn)行了校驗(yàn),其他的諸如路徑的合法性等都是可以拓展進(jìn)行校驗(yàn)的。接下來我們一起來測試一下上面的代碼是不是真的能獲取到用例信息并正確發(fā)送請(qǐng)求。

調(diào)試運(yùn)行

運(yùn)行的的結(jié)果:

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例,自動(dòng)化測試,軟件測試,自動(dòng)化,運(yùn)維,程序人生,軟件測試,軟件測試工程師,golang,自動(dòng)化測試

需要說明的是因?yàn)槲覀冊(cè)L問的路徑/api/user/loginhttp://httpbin.org中都沒有監(jiān)聽,所以接口返回的404,其實(shí)請(qǐng)求也是成功的,但是我們看不到具體的請(qǐng)求數(shù)據(jù)和URL了,所以我們修改一下yml文件中的path為?http://httpbin.org已經(jīng)監(jiān)聽的/post來看看結(jié)果。

修改后的數(shù)據(jù)為:

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例,自動(dòng)化測試,軟件測試,自動(dòng)化,運(yùn)維,程序人生,軟件測試,軟件測試工程師,golang,自動(dòng)化測試

測試:

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例,自動(dòng)化測試,軟件測試,自動(dòng)化,運(yùn)維,程序人生,軟件測試,軟件測試工程師,golang,自動(dòng)化測試

可以看到我們請(qǐng)求的參數(shù)/路徑/IP等等信息都和我們測試用例中填充的內(nèi)容一致。至此,我們的測試用例及測試就完成了

總結(jié)

  • YAML
  • 解析yml文件中的信息
  • 發(fā)送yml格式的數(shù)據(jù)

資料獲取方法

【留言777】

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例,自動(dòng)化測試,軟件測試,自動(dòng)化,運(yùn)維,程序人生,軟件測試,軟件測試工程師,golang,自動(dòng)化測試

【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例,自動(dòng)化測試,軟件測試,自動(dòng)化,運(yùn)維,程序人生,軟件測試,軟件測試工程師,golang,自動(dòng)化測試

各位想獲取源碼等教程資料的朋友請(qǐng)點(diǎn)贊 + 評(píng)論 + 收藏,三連!

三連之后我會(huì)在評(píng)論區(qū)挨個(gè)私信發(fā)給你們~文章來源地址http://www.zghlxwxcb.cn/news/detail-621418.html

到了這里,關(guān)于【Golang 接口自動(dòng)化05】使用yml管理自動(dòng)化用例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Golang 接口自動(dòng)化03】 解析接口返回XML

    【Golang 接口自動(dòng)化03】 解析接口返回XML

    目錄 解析接口返回?cái)?shù)據(jù) 定義結(jié)構(gòu)體 解析函數(shù): 測試 優(yōu)化 資料獲取方法 上一篇我們學(xué)習(xí)了怎么發(fā)送各種數(shù)據(jù)類型的http請(qǐng)求,這一篇我們來介紹怎么來解析接口返回的XML的數(shù)據(jù)。 定義結(jié)構(gòu)體 假設(shè)我們現(xiàn)在有一個(gè)接口返回的數(shù)據(jù) resp 如下: 要解析這個(gè)數(shù)據(jù),首先我們要定義

    2024年02月14日
    瀏覽(22)
  • 接口自動(dòng)化測試系列-excel管理測試用例

    接口自動(dòng)化測試系列-excel管理測試用例

    代碼源碼: 框架結(jié)構(gòu) excel用例demo excel數(shù)據(jù)處理 requests請(qǐng)求封裝 檢查點(diǎn)函數(shù) 數(shù)據(jù)處理工廠 發(fā)送郵件函數(shù)

    2024年02月10日
    瀏覽(27)
  • Vue實(shí)現(xiàn)自動(dòng)化平臺(tái)(四)--接口管理頁面的實(shí)現(xiàn)

    Vue實(shí)現(xiàn)自動(dòng)化平臺(tái)(四)--接口管理頁面的實(shí)現(xiàn)

    上一章: Vue實(shí)現(xiàn)自動(dòng)化平臺(tái)(三)_做測試的喵醬的博客-CSDN博客 github地址:https://github.com/18713341733/vuemiaotest? 這個(gè)目前只是用來練手的,項(xiàng)目還沒成型。等以后我寫完了,再更新一下項(xiàng)目鏈接。? ? 這個(gè)頁面樣式,與我們上一章 項(xiàng)目管理的頁面樣式展示基本一樣。 所以樣式

    2023年04月16日
    瀏覽(18)
  • 2023軟件測試工具大全(自動(dòng)化、接口、性能、安全、測試管理)

    2023軟件測試工具大全(自動(dòng)化、接口、性能、安全、測試管理)

    目錄 前言 一、自動(dòng)化測試工具 Selenium Appium TestComplete 二、接口測試工具 Postman SoapUI JMeter 三、性能測試工具 LoadRunner JMeter Gatling 四、安全測試工具 Burp Suite OWASP ZAP Nmap 五、測試管理工具 TestRail JIRA TestLink 總結(jié) 軟件測試是保障軟件質(zhì)量的重要環(huán)節(jié),而現(xiàn)代化的軟件開發(fā)過程中

    2024年02月16日
    瀏覽(31)
  • 如何編寫接口自動(dòng)化框架系列通過yaml來管理測試用例(四)

    如何編寫接口自動(dòng)化框架系列通過yaml來管理測試用例(四)

    本文是接口自動(dòng)化測試框架系列篇的第四篇 ,主要介紹yaml包的使用 。自動(dòng)化測試的本質(zhì)是將功能測試用例交給代碼去 目錄 1. yaml介紹? 2.python中的yaml包 3.項(xiàng)目中使用yaml包 4 項(xiàng)目總結(jié) 執(zhí)行 ,測試人員往往是在自動(dòng)化框架添加對(duì)應(yīng)的測試用例即可(也叫測試腳本)。而維護(hù)測試

    2024年02月07日
    瀏覽(23)
  • 項(xiàng)目實(shí)戰(zhàn)-RuoYi后臺(tái)管理系統(tǒng)-登錄功能Postman接口自動(dòng)化腳本分享

    ????先來回顧一下之前寫過的關(guān)于RuoYi后臺(tái)管理系統(tǒng)項(xiàng)目實(shí)戰(zhàn)相關(guān)的幾篇文章: 測試項(xiàng)目實(shí)戰(zhàn)----RuoYi后臺(tái)管理系統(tǒng) 項(xiàng)目實(shí)戰(zhàn)-RuoYi后臺(tái)管理系統(tǒng)-用戶管理測試點(diǎn)設(shè)計(jì) 項(xiàng)目實(shí)戰(zhàn)-RuoYi后臺(tái)管理系統(tǒng)-登錄相關(guān)接口分析 Docker搭建webdis用于提供api查詢r(jià)edis中的數(shù)據(jù) 項(xiàng)目實(shí)戰(zhàn)-RuoYi后臺(tái)管

    2023年04月20日
    瀏覽(22)
  • 【六】SpringBoot集成MyBatis-yml自動(dòng)化配置原理詳解

    【六】SpringBoot集成MyBatis-yml自動(dòng)化配置原理詳解

    ????????簡介:spring boot整合mybatis開發(fā)web系統(tǒng)目前來說是市面上主流的框架,每個(gè)Java程序和springboot mybatis相處的時(shí)間可謂是比和自己女朋友相處的時(shí)間都多,但是springboot mybatis并沒有得到你的真愛,因?yàn)槟阒皇菫榱损B(yǎng)活你女朋友而委曲求全的和spring boot mybatis假意相處。和

    2024年02月10日
    瀏覽(21)
  • 使用Postman進(jìn)行接口自動(dòng)化測試

    使用Postman進(jìn)行接口自動(dòng)化測試

    ?我們先思考一下,如果需要達(dá)到自動(dòng)化接口測試的效果,那么我們?cè)诨镜哪M請(qǐng)求上還需要做哪些呢? 以下我粗略概括為 3 個(gè)問題(歡迎更多補(bǔ)充與建議): 如何判斷接口是否請(qǐng)求成功 如何進(jìn)行接口批量、定期測試 如何處理依賴接口問題(比如商品下單的接口必須要求

    2024年01月18日
    瀏覽(60)
  • 使用ApiPost進(jìn)行接口自動(dòng)化測試

    使用ApiPost進(jìn)行接口自動(dòng)化測試

    自動(dòng)化測試模塊是針對(duì)測試人員的復(fù)雜業(yè)務(wù)的測試服務(wù)??梢栽跍y試用例中建立一個(gè)或多個(gè)“測試計(jì)劃”,“測試計(jì)劃”由接口和控制器組成。 1、創(chuàng)建步驟 1、在API設(shè)計(jì)或API調(diào)試內(nèi)保存接口。 2、打開自動(dòng)化測試-測試用例,新建一個(gè)測試計(jì)劃。 3、在右側(cè)的API添加器內(nèi)添加接

    2024年02月05日
    瀏覽(22)
  • 使用phpunit進(jìn)行接口自動(dòng)化測試

    使用phpunit進(jìn)行接口自動(dòng)化測試

    年初一個(gè)偶然的機(jī)會(huì)接觸到了phpunit,一個(gè)用PHP編程語言開發(fā)的開源軟件,也是一個(gè)單元測試框架,有效利用的話可以大大提高接口遍歷的效率。廢話不多說,直接干貨。 1.安裝 在php的目錄下 1 2 pear channel-discover pear; pear install phpunit/PHPUnit 2.配置 首先新建一個(gè)lib文件夾存放的配

    2024年01月20日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包