小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【技能提升】python操作數(shù)據(jù)庫(kù)完成接口測(cè)試

 六芒ct 2021-10-27

各位小伙伴,接口測(cè)試中我們會(huì)使用到各種各樣的數(shù)據(jù),特別是在編寫接口自動(dòng)化測(cè)試代碼時(shí),我們不可能在代碼中寫數(shù)據(jù),我們需要把數(shù)據(jù)和代碼分離,便于我們后期維護(hù)代碼和數(shù)據(jù)。

數(shù)據(jù)儲(chǔ)存的形式多種多樣,我們可以儲(chǔ)存到txt格式的文檔里,也可以儲(chǔ)存到csv格式的文件里,前面兩種都是數(shù)據(jù)量比較小的時(shí)候我們可以臨時(shí)使用一下,但數(shù)據(jù)量多的時(shí)候我們都是儲(chǔ)存到數(shù)據(jù)庫(kù)中的。Mysql是我們最常用到的關(guān)系型數(shù)據(jù)庫(kù),接下來(lái)我們來(lái)學(xué)習(xí)一下,怎么使用python獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后使用到接口測(cè)試中。

 

圖片

 

閱讀這篇文章你需要python,mysql,接口測(cè)試,軟件測(cè)試,自動(dòng)化測(cè)試等知識(shí)

 

首先數(shù)據(jù)是儲(chǔ)存在mysql數(shù)據(jù)庫(kù)中的,如用戶登錄的用戶名和密碼,我們需要獲取用戶名和密碼作為登錄接口的參數(shù),如下圖:

 

圖片

下面是我們的自動(dòng)化接口測(cè)試代碼,接口測(cè)試中使用了requests和unittest測(cè)試框架。如標(biāo)注的地方,需要我們從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)來(lái)替換

Import unittest#這種引入模塊的方式,使用模塊里的變量或函數(shù)時(shí),要用模塊名.函數(shù)來(lái)使用函數(shù)

Import requests

 

Class Myclass(unittest.TestCase):

#為用例初始化

Def setUp(self):

pass

 

Def test_longin(self):

#這里的用戶名和密碼需要從數(shù)據(jù)庫(kù)中獲取

data={"name":'maker','passwd':'123456'}

res=requests.post('http://127.0.0.1:8808/api/block/login',params=data)

print(res.text)

mystr2=res.text

mystr='''{

"code":"200",

"msg":"成功",

"data":"bbb"

}'''

self.assertEqual(mystr,mystr2,"預(yù)期結(jié)果和實(shí)際結(jié)果不符")

 

 

if__name__=='__main__':

unittest.main()

 

接下來(lái)我們看一下怎么使用python從mysql數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),具體的步驟如:

1. 引入pymysql

2. 連接數(shù)據(jù)庫(kù)

3. 創(chuàng)建游標(biāo)對(duì)象

4. 查看一下所在數(shù)據(jù)庫(kù)(如果不在,需要切換數(shù)據(jù)庫(kù))

5. 獲取數(shù)據(jù)

6. 關(guān)閉數(shù)據(jù)庫(kù)

上面需要注意的是,必須先下載pymysql模塊

代碼如下:

#1.引入pymysql

import pymysql

#2.連接數(shù)據(jù)庫(kù)

mydb=pymysql.connect(host='localhost',port=3306,user='root',

passwd='123456',db='qftestdb',charset='utf8')

#3..創(chuàng)建游標(biāo)對(duì)象

cur=mydb.cursor()

 

#4.查看所在的數(shù)據(jù)庫(kù)

cur.execute("select DATABASE()")

data=cur.fetchone()

print(data)

 

#5.獲取數(shù)據(jù)

str="select *from user"

cur.execute(str)

data=cur.fetchone()

print(data)#這里就是獲取的數(shù)據(jù)

#6.關(guān)閉數(shù)據(jù)庫(kù)

mydb.close()

現(xiàn)在我們知道怎么使用python從mysql獲取數(shù)據(jù),接下來(lái)我們要把兩份代碼整合到一起,重點(diǎn)在如下圖

 

你需要的完整代碼如下:

import unittest

"""

這種引入模塊的方式,使用模塊里的變量或函數(shù)時(shí),

要用模塊名.函數(shù)來(lái)使用函數(shù)

"""

import requests

# 1.引入pymysql

import pymysql

class Myclass(unittest.TestCase):

 

def setUp(self):

# 2.連接數(shù)據(jù)庫(kù)

mydb = pymysql.connect(host='localhost', port=3306,

user='root', passwd='123456', db='qftestdb', charset='utf8')

# 3..創(chuàng)建游標(biāo)對(duì)象

cur = mydb.cursor()

 

# 4.查看所在的數(shù)據(jù)庫(kù)

cur.execute("select DATABASE()")

data = cur.fetchone()

print(data)

 

# 5.獲取數(shù)據(jù)

str = "select *from user"

cur.execute(str)

data = cur.fetchone()

#需要把data中的數(shù)據(jù)給到test_login函數(shù)中

self.user=data[0]

self.password=data[1]

# 6.關(guān)閉數(shù)據(jù)庫(kù)

mydb.close()

 

def test_longin(self):

data = {"name":self.user, 'passwd':self.password}

res = requests.post('http://127.0.0.1:8808/api/block

/login',params=data)

print(res.text)

mystr2 = res.text

mystr = '''{

"code": "200",

"msg": "成功",

"data": "bbb"

}'''

self.assertEqual(mystr, mystr2, "預(yù)期結(jié)果和實(shí)際結(jié)果不符")

 

 

if __name__=='__main__':

unittest.main()

整個(gè)代碼編寫思路是:先使用具體數(shù)據(jù)進(jìn)行接口自動(dòng)化測(cè)試,ok沒(méi)有問(wèn)題后,然后再編寫獲取mysql數(shù)據(jù)庫(kù)中數(shù)據(jù)的代碼,代碼運(yùn)行ok,能獲取到數(shù)據(jù),然后再把兩個(gè)代碼整合到一起,整合中考慮從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù)怎么給到接口測(cè)試代碼中。這里我們使用了對(duì)象屬性的方式。

 

 

圖片

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多