欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python如何實(shí)現(xiàn)http接口自動(dòng)化測(cè)試-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Python如何實(shí)現(xiàn)http接口自動(dòng)化測(cè)試,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)是專業(yè)的江西網(wǎng)站建設(shè)公司,江西接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行江西網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

接口測(cè)試常用的工具有fiddler,postman,jmeter等,使用這些工具測(cè)試時(shí),需要了解常用的接口類型和區(qū)別,比如我用到的post和get請(qǐng)求,表面上看get用于獲取數(shù)據(jù)post用于修改數(shù)據(jù),兩者傳遞參數(shù)的方式也有不一樣,get是直接在url里通過(guò)?來(lái)連接參數(shù),而post則是把數(shù)據(jù)放在HTTP的包體內(nèi)(request body),兩者的本質(zhì)就是TCP鏈接,并無(wú)差別,但是由于HTTP的規(guī)定和瀏覽器/服務(wù)器的限制,導(dǎo)致他們?cè)趹?yīng)用過(guò)程中體現(xiàn)出一些不同。具體的可以參考此博文,講解的比較通俗易懂。這些在工具中可以直接選擇,python需要借助requests包。

確定好接口類型后,需要做的就是準(zhǔn)備測(cè)試數(shù)據(jù)和設(shè)計(jì)測(cè)試用例了,測(cè)試用例比如說(shuō)可以判斷返回狀態(tài)響應(yīng)碼,或者對(duì)返回?cái)?shù)據(jù)進(jìn)行判別等,具體可以參考postman中的echo.collections,對(duì)于python可以用unittest來(lái)組織測(cè)試用例和添加斷言進(jìn)行判斷。而對(duì)于測(cè)試數(shù)據(jù)的準(zhǔn)備,需要做到數(shù)據(jù)和業(yè)務(wù)盡量分離,即將測(cè)試數(shù)據(jù)參數(shù)化,在工具中可以通過(guò)添加變量的形式實(shí)現(xiàn),對(duì)于python設(shè)計(jì)到的有關(guān)包有xlrd,json,如果需要連接數(shù)據(jù)庫(kù)還需要mysql。
測(cè)試完成后生產(chǎn)報(bào)告或者發(fā)送郵件,也可以使用HTMLTestRunner和smtplib等。
我也從這三大方面進(jìn)行總結(jié):

1. 接口方法實(shí)現(xiàn)和封裝

requests庫(kù)可以很好的幫助我們實(shí)現(xiàn)HTTP請(qǐng)求,API參考文檔,這里我創(chuàng)建了runmethod.py,里面包含RunMethod類:

Python如何實(shí)現(xiàn)http接口自動(dòng)化測(cè)試

這里需要注意就是python默認(rèn)參數(shù)和可選參數(shù)要放在必選參數(shù)后面,對(duì)于相應(yīng)數(shù)據(jù)使用json格式進(jìn)行返回。參數(shù)verify=false表示忽略對(duì) SSL 證書的驗(yàn)證。

2.組織測(cè)試和生成報(bào)告

使用unittest來(lái)組織測(cè)試、添加測(cè)試用例和斷言,測(cè)試報(bào)告可以下載HTMLTestRunner.py并放在python安裝路徑lib下即可,代碼如下:

#coding:utf-8
import unittest
import json
import HTMLTestRunner
from mock import mock
#from demo import RunMain
from runmethod import RunMethod
from mock_demo import mock_test
import os
class TestMethod(unittest.TestCase):
	def setUp(self):
		#self.run=RunMain()
		self.run = RunMethod()
	def test_01(self):
		url = 'http://coding.imooc.com/api/cate'
		data = {
			'timestamp':'1507034803124',
			'uid':'5249191',
			'uuid':'5ae7d1a22c82fb89c78f603420870ad7',
			'secrect':'078474b41dd37ddd5efeb04aa591ec12',
			'token':'7d6f14f21ec96d755de41e6c076758dd',
			'cid':'0',
			'errorCode':1001
		}
		#self.run.run_main = mock.Mock(return_value=data)
		res = mock_test(self.run.run_main,data,url,"POST",data)
		#res = self.run.run_main(url,'POST',data)
		print(res)
		self.assertEqual(res['errorCode'],1001,"測(cè)試失敗")


	@unittest.skip('test_02')	
	def test_02(self):
		
		url = 'http://coding.imooc.com/api/cate'
		data = {
			'timestamp':'1507034803124',
			'uid':'5249191',
			'uuid':'5ae7d1a22c82fb89c78f603420870ad7',
			'secrect':'078474b41dd37ddd5efeb04aa591ec12',
			'token':'7d6f14f21ec96d755de41e6c076758dd',
			'cid':'0'

		}

		res = self.run.run_main(url,'GET',data)
		self.assertEqual(res['errorCode'],1006,"測(cè)試失敗")

	def test_03(self):
		url = 'http://coding.imooc.com/api/cate'
		data = {
			'timestamp':'1507034803124',
			'uid':'5249191',
			'uuid':'5ae7d1a22c82fb89c78f603420870ad7',
			'secrect':'078474b41dd37ddd5efeb04aa591ec12',
			'token':'7d6f14f21ec96d755de41e6c076758dd',
			'cid':'0',
			'status':11
			}

		res = mock_test(self.run.run_main,data,url,'GET',data)
		print(res)
		self.assertGreater(res['status'],10,'測(cè)試通過(guò)')

if __name__ == '__main__':

	filepath = os.getcwd()+'\\report.html'
	fp = open(filepath,'wb+')
	suite = unittest.TestSuite()
	suite.addTest(TestMethod('test_01'))
	suite.addTest(TestMethod('test_02'))
	suite.addTest(TestMethod('test_03'))
	runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='this is demo test')
	runner.run(suite)
	#unittest.main()

網(wǎng)站名稱:Python如何實(shí)現(xiàn)http接口自動(dòng)化測(cè)試-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://aaarwkj.com/article28/ccdojp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)、ChatGPT、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
亚洲性图中文字幕在线| 高清不卡日本一区二区| 日韩精品a区二区在线电影| 久久热在线观看免费高清| 精品人妻少妇av一区二区| 欧美黄色免费电影网站| 日本国产一区二区在线观看 | av成人综合在线资源站| 亚洲专区综合红桃av| 午夜精品人妻一区二区| 97精品国产高清在线| 国产经典三级在线观看| 国产精品一区在线免费看| 亚洲日本精品免费在线观看| 国产成人久久精品二区三区| 成人中文字幕日韩电影| 日日夜夜久久国产精品| 欧美三级美国三级亚洲三级| 一本久道久久综合狠狠老| 粉嫩一区二区三区精品视频| 国产黄色自拍av网站| 免费观看在线黄色大片| 日韩中字伦理熟妇人妻| 亚洲一区二区精品999| 国产精品久久一区二区三区蜜桃| 久久香蕉精品国产亚洲av| 日本视频三区在线播放| 国产l精品国产亚洲区久久 | 琪琪精品免费一区二区三区| 校花出白浆视频一区二区三区| 久久精品国产视频在热| 最新国产激情福利网站| 成人av久久一区二区三区| 日本午夜福利久久久| 国产三级精品三级在线专区1| 伊人99热这里只有精品| 亚洲精品在线观看av| 日韩福利成人av在线| 手机黄色av免费在线网址| 东京一区二区三区四区黄片| 欧美 日本国产一区|