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

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è)
久久精品久久黄色片看看| 亚洲日本国产精品一区| 中文字幕的国产在线播放| 免费在线观看av大全| 日本姜女黄视频免费看| 黄色av福利在线网站| 国产叼嘿一区二区视频| 国产国语久久91老女人| 日日夜夜久久一二三区 | 亚洲欧美综合另类久久| 一区二区日韩激情在线观看视频| 精品国产欧美亚洲91| 国产夫妻性生活视频播放| 九九热这里只有免费视频| 99久久精品人妻少妇一| 欧美黄片高清免费播放| 成年视频免费观看视频| 久久久久久精品国产av| 亚洲人妻在线一区二区三区| 国产精品免费视频能看的| 亚洲天堂中文字幕麻豆| 亚洲av天堂在线播放| 久久av少妇亚洲精品| 国产亚洲精品久久久久久| 亚洲综合色婷婷在线影院| 国产亚洲精品视频在线| 综合av在线一区天堂| 日韩精品第一区第二区| 不卡一区二区福利日本| 亚洲综合国产一二三四五区| 国产激情片午夜福利| 久久久精品国产亚洲av网黑人| 日韩黄色成人免费片子| 亚洲女同在线免费观看| 男人天堂av网在线观看| 日韩精品一区二区三区高清| 日本高清免费播放一区二区| 韩国三级伦理中文字幕| 国产精品成人亚洲一区二区| 亚洲av天堂免费在线观看| 91薄丝激情在线播放|