中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

鄭州購物網(wǎng)站建設(shè)寫軟文怎么接單子

鄭州購物網(wǎng)站建設(shè),寫軟文怎么接單子,獨(dú)立做網(wǎng)站需要學(xué)習(xí)什么,泰州網(wǎng)站制作策劃1. 什么是接口測試 顧名思義,接口測試是對系統(tǒng)或組件之間的接口進(jìn)行測試,主要是校驗(yàn)數(shù)據(jù)的交換,傳遞和控制管理過程,以及相互邏輯依賴關(guān)系。其中接口協(xié)議分為HTTP,WebService,Dubbo,Thrift,Socket等類型,測試類型又主…

1. 什么是接口測試

顧名思義,接口測試是對系統(tǒng)或組件之間的接口進(jìn)行測試,主要是校驗(yàn)數(shù)據(jù)的交換,傳遞和控制管理過程,以及相互邏輯依賴關(guān)系。其中接口協(xié)議分為HTTP,WebService,Dubbo,Thrift,Socket等類型,測試類型又主要分為功能測試,性能測試,穩(wěn)定性測試,安全性測試等。

在分層測試的“金字塔”模型中,接口測試屬于第二層服務(wù)集成測試范疇。相比UI層(主要是WEB或APP)自動(dòng)化測試而言,接口自動(dòng)化測試收益更大,且容易實(shí)現(xiàn),維護(hù)成本低,有著更高的投入產(chǎn)出比,是每個(gè)公司開展自動(dòng)化測試的首選。

下面我們以一個(gè)HTTP接口為例,完整的介紹接口自動(dòng)化測試流程:從需求分析到用例設(shè)計(jì),從腳本編寫、測試執(zhí)行到結(jié)果分析,并提供完整的用例設(shè)計(jì)及測試腳本。

2. 基本流程

基本的接口功能自動(dòng)化測試流程如下:

需求分析 -> 用例設(shè)計(jì) -> 腳本開發(fā) -> 測試執(zhí)行 -> 結(jié)果分析

2.1 示例接口

接口名稱:豆瓣電影搜索

地址啥的會被屏蔽,發(fā)不出來,放在文末了

3. 需求分析

需求分析是參考需求、設(shè)計(jì)等文檔,在了解需求的基礎(chǔ)上還需清楚內(nèi)部的實(shí)現(xiàn)邏輯,并且可以在這一階段提出需求、設(shè)計(jì)存在的不合理或遺漏之處。

如:豆瓣電影搜索接口,我理解的需求即是支持對片名,演職人員及標(biāo)簽的搜索,并分頁返回搜索結(jié)果。

4. 用例設(shè)計(jì)

用例設(shè)計(jì)是在理解接口測試需求的基礎(chǔ)上,使用MindManager或XMind等思維導(dǎo)圖軟件編寫測試用例設(shè)計(jì),主要內(nèi)容包括參數(shù)校驗(yàn),功能校驗(yàn)、業(yè)務(wù)場景校驗(yàn)、安全性及性能校驗(yàn)等,常用的用例設(shè)計(jì)方法有等價(jià)類劃分法,邊界值分析法,場景分析法,因果圖,正交表等。

針對豆瓣電影搜索接口功能測試部分,我們主要從參數(shù)校驗(yàn),功能校驗(yàn),業(yè)務(wù)場景校驗(yàn)三方面,設(shè)計(jì)測試用例如下:

5. 腳本開發(fā)

依據(jù)上面編寫的測試用例設(shè)計(jì),我們使用python+nosetests框架編寫了相關(guān)自動(dòng)化測試腳本??梢酝暾麑?shí)現(xiàn)接口自動(dòng)化測試、自動(dòng)執(zhí)行及郵件發(fā)送測試報(bào)告功能。

5.1 相關(guān)lib安裝

必要的lib庫如下,使用pip命令安裝即可:

pip install nose pip install nose-html-reporting pip install requests

5.2 接口調(diào)用

使用requests庫,我們可以很方便的編寫上述接口調(diào)用方法(如搜索q=劉德華,示例代碼如下):

#coding=utf-8 import requests import json url = ' https://api.douban.com/v2/movie/search' params=dict(q=u'劉德華') r = requests.get(url, params=params) print 'Search Params:\n', json.dumps(params, ensure_ascii=False) print 'Search Response:\n', json.dumps(r.json(), ensure_ascii=False, indent=4)

在實(shí)際編寫自動(dòng)化測試腳本時(shí),我們需要進(jìn)行一些封裝。如下代碼中我們對豆瓣電影搜索接口進(jìn)行了封裝,test_q方法只需使用nosetests提供的yield方法即可很方便的循環(huán)執(zhí)行列表qs中每一個(gè)測試集:

class test_doubanSearch(object): @staticmethod def search(params, expectNum=None): url = ' https://api.douban.com/v2/movie/search' r = requests.get(url, params=params) print 'Search Params:\n', json.dumps(params, ensure_ascii=False) print 'Search Response:\n', json.dumps(r.json(), ensure_ascii=False, indent=4) def test_q(self): # 校驗(yàn)搜索條件 q qs = [u'白夜追兇', u'大話西游', u'周星馳', u'張藝謀', u'周星馳,吳孟達(dá)', u'張藝謀,鞏俐', u'周星馳,大話西游', u'白夜追兇,潘粵明'] for q in qs: params = dict(q=q) f = partial(test_doubanSearch.search, params) f.description = json.dumps(params, ensure_ascii=False).encode('utf-8') yield (f,)

我們按照測試用例設(shè)計(jì),依次編寫每個(gè)功能的自動(dòng)化測試腳本即可。

5.3 結(jié)果校驗(yàn)

在手工測試接口的時(shí)候,我們需要通過接口返回的結(jié)果判斷本次測試是否通過,自動(dòng)化測試也是如此。

對于本次的接口,我們搜索“q=劉德華”,我們需要判斷返回的結(jié)果中是否含有“演職人員劉德華或片名劉德華”,搜索“tag=喜劇”時(shí),需要判斷返回的結(jié)果中電影類型是否為“喜劇”,結(jié)果分頁時(shí)需要校驗(yàn)返回的結(jié)果數(shù)是否正確等。完整結(jié)果校驗(yàn)代碼如下:

class check_response(): @staticmethod def check_result(response, params, expectNum=None): # 由于搜索結(jié)果存在模糊匹配的情況,這里簡單處理只校驗(yàn)第一個(gè)返回結(jié)果的正確性 if expectNum is not None: # 期望結(jié)果數(shù)目不為None時(shí),只判斷返回結(jié)果數(shù)目 eq_(expectNum, len(response['subjects']), '{0}!={1}'.format(expectNum, len(response['subjects']))) else: if not response['subjects']: # 結(jié)果為空,直接返回失敗 assert False else: # 結(jié)果不為空,校驗(yàn)第一個(gè)結(jié)果 subject = response['subjects'][0] # 先校驗(yàn)搜索條件tag if params.get('tag'): for word in params['tag'].split(','): genres = subject['genres'] ok_(word in genres, 'Check {0} failed!'.format(word.encode('utf-8'))) # 再校驗(yàn)搜索條件q elif params.get('q'): # 依次判斷片名,導(dǎo)演或演員中是否含有搜索詞,任意一個(gè)含有則返回成功 for word in params['q'].split(','): title = [subject['title']] casts = [i['name'] for i in subject['casts']] directors = [i['name'] for i in subject['directors']] total = title + casts + directors ok_(any(word.lower() in i.lower() for i in total), 'Check {0} failed!'.format(word.encode('utf-8'))) @staticmethod def check_pageSize(response): # 判斷分頁結(jié)果數(shù)目是否正確 count = response.get('count') start = response.get('start') total = response.get('total') diff = total - start if diff >= count: expectPageSize = count elif count > diff > 0: expectPageSize = diff else: expectPageSize = 0 eq_(expectPageSize, len(response['subjects']), '{0}!={1}'.format(expectPageSize, len(response['subjects'])))

5.4 執(zhí)行測試

對于上述測試腳本,我們使用nosetests命令可以方便的運(yùn)行自動(dòng)化測試,并可使用nose-html-reporting插件生成html格式測試報(bào)告。

運(yùn)行命令如下:

nosetests -v test_doubanSearch.py:test_doubanSearch --with-html --html-report=TestReport.html

5.5 發(fā)送郵件報(bào)告

測試完成之后,我們可以使用smtplib模塊提供的方法發(fā)送html格式測試報(bào)告?;玖鞒淌亲x取測試報(bào)告 -> 添加郵件內(nèi)容及附件 -> 連接郵件服務(wù)器 -> 發(fā)送郵件 -> 退出,示例代碼如下:

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_mail(): # 讀取測試報(bào)告內(nèi)容 with open(report_file, 'r') as f: content = f.read().decode('utf-8') msg = MIMEMultipart('mixed') # 添加郵件內(nèi)容 msg_html = MIMEText(content, 'html', 'utf-8') msg.attach(msg_html) # 添加附件 msg_attachment = MIMEText(content, 'html', 'utf-8') msg_attachment["Content-Disposition"] = 'attachment; filename="{0}"'.format(report_file) msg.attach(msg_attachment) msg['Subject'] = mail_subjet msg['From'] = mail_user msg['To'] = ';'.join(mail_to) try: # 連接郵件服務(wù)器 s = smtplib.SMTP(mail_host, 25) # 登陸 s.login(mail_user, mail_pwd) # 發(fā)送郵件 s.sendmail(mail_user, mail_to, msg.as_string()) # 退出 s.quit() except Exception as e: print "Exceptioin ", e

6. 結(jié)果分析

打開nosetests運(yùn)行完成后生成的測試報(bào)告,可以看出本次測試共執(zhí)行了51條測試用例,50條成功,1條失敗。

失敗的用例可以看到傳入的參數(shù)是:{"count": -10, "tag": "喜劇"},此時(shí)返回的結(jié)果數(shù)與我們的期望結(jié)果不一致(count為負(fù)數(shù)時(shí),期望結(jié)果是接口報(bào)錯(cuò)或使用默認(rèn)值20,但實(shí)際返回的結(jié)果數(shù)目是189。趕緊去給豆瓣提bug啦- -)

7. 測試報(bào)告

最終發(fā)送測試報(bào)告郵件,截圖如下:

8. 資源分享

最后,為方便大家自學(xué)軟件測試,特意給大家準(zhǔn)備了一份13G的超實(shí)用干貨學(xué)習(xí)資源,涉及所有測試知識點(diǎn)。

這些資料,對于想進(jìn)階【自動(dòng)化測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助……?

http://www.risenshineclean.com/news/2480.html

相關(guān)文章:

  • 網(wǎng)站沒有備案會怎么樣百度最新財(cái)報(bào)
  • 網(wǎng)站建設(shè)800元全包seo優(yōu)化排名工具
  • 網(wǎng)站建設(shè)與品牌策劃方案報(bào)價(jià)國際形勢最新消息
  • 深圳專業(yè)o2o網(wǎng)站設(shè)計(jì)公司長春seo整站優(yōu)化
  • 福建城鄉(xiāng)建設(shè)部網(wǎng)站首頁競價(jià)培訓(xùn)班
  • 紹興公司企業(yè)名單武漢seo優(yōu)化代理
  • 做汽車行業(yè)必須注冊際零件網(wǎng)站必應(yīng)搜索國際版
  • 邢臺商城類網(wǎng)站建設(shè)企業(yè)qq郵箱
  • 百度指數(shù)的網(wǎng)站谷歌搜索入口365
  • 網(wǎng)站制作的公司哪個(gè)好南寧seo營銷推廣
  • 長沙哪個(gè)網(wǎng)站建設(shè)最好重慶可靠的關(guān)鍵詞優(yōu)化研發(fā)
  • 網(wǎng)站開發(fā)常用的谷歌插件女教師遭網(wǎng)課入侵視頻大全播放
  • 高密市政府建設(shè)局網(wǎng)站臺州網(wǎng)站制作維護(hù)
  • 汕頭市門戶網(wǎng)站建設(shè)屬性詞 關(guān)鍵詞 核心詞
  • 深圳軟件有限公司企業(yè)網(wǎng)站優(yōu)化關(guān)鍵詞
  • 電商設(shè)計(jì)網(wǎng)站模板搜索引擎優(yōu)化seo公司
  • 做很多網(wǎng)站省委副書記
  • 頂呱呱網(wǎng)站做的怎么樣?xùn)|莞網(wǎng)站推廣大全
  • 深圳專業(yè)手機(jī)網(wǎng)站建設(shè)重慶seo按天收費(fèi)
  • 河北涿州網(wǎng)站建設(shè)黑科技推廣軟件
  • 前端做網(wǎng)站一般用什么框架中國十大搜索引擎網(wǎng)站
  • ps做旅游網(wǎng)站整合營銷方案
  • 公司網(wǎng)站怎么做能被別人搜索到個(gè)人網(wǎng)頁
  • 做微網(wǎng)站的第三方登錄界面百度推廣費(fèi)用可以退嗎
  • 網(wǎng)站ui 特點(diǎn)建立免費(fèi)網(wǎng)站
  • 保定網(wǎng)站seoseo外包優(yōu)化公司
  • 平面設(shè)計(jì)接單appseo內(nèi)部優(yōu)化包括哪些內(nèi)容
  • 做暖暖無碼網(wǎng)站國通快速建站
  • 寶安中心做網(wǎng)站網(wǎng)絡(luò)推廣seo教程
  • 企業(yè)網(wǎng)站開發(fā) metinfo網(wǎng)站搜索引擎優(yōu)化診斷