來(lái)自手動(dòng)測(cè)試的WEB接口自動(dòng)化測(cè)試框架

設(shè)計(jì)目標(biāo):

希望在手動(dòng)測(cè)試和自動(dòng)化測(cè)試中建立一個(gè)橋梁码俩,利用手動(dòng)測(cè)試產(chǎn)生的結(jié)果伪阶,來(lái)自動(dòng)生成測(cè)試用例纵东。

設(shè)計(jì)思路:

通過(guò)監(jiān)控手動(dòng)測(cè)試的結(jié)果粘招,我們可以對(duì)手動(dòng)測(cè)試的結(jié)果進(jìn)行分析,得到請(qǐng)求的條件以及返回的結(jié)果偎球。

通過(guò)泛化請(qǐng)求條件洒扎,例如:邊界值辑甜,等價(jià)值,安全測(cè)試等,我們可以自動(dòng)生成更多的測(cè)試用例袍冷。

通過(guò)自動(dòng)生成的測(cè)試用例栈戳,我們可以得到返回結(jié)果,以及預(yù)期的結(jié)果难裆,以及判斷對(duì)錯(cuò)。

系統(tǒng)運(yùn)行環(huán)境

python 3.7 pip install mitmproxy pymysql
mysql 镊掖, gencase.sql 在 test數(shù)據(jù)庫(kù) 建proxyed,gencase 兩張表

系統(tǒng)運(yùn)行

手動(dòng)測(cè)試準(zhǔn)備:

   1. 修改 record.py 中的 live.kuaishou.com/rest/ 為你需要測(cè)試的應(yīng)用中的服務(wù)器url 
       def response(flow):
            response =flow.response
            if 'live.kuaishou.com/rest/' in flow.request.url:
            
   2- python3  runproxy.py 乃戈, 在8888 端口上啟動(dòng)http/https 代理 
   3- 在手機(jī)上或者PC 上為http/https請(qǐng)求設(shè)置mitmproxy 代理

設(shè)置mitmproxy 代理方法請(qǐng)參考: 參見(jiàn)(http://www.reibang.com/p/0cc558a8d6a2)

記錄服務(wù)器請(qǐng)求

手機(jī)上手動(dòng)測(cè)試web和app應(yīng)用。 系統(tǒng)會(huì)在后臺(tái)記錄請(qǐng)求亩进。

生成測(cè)試用例:python3 gencase.py

運(yùn)行測(cè)試用例:python3 runcase.py

系統(tǒng)結(jié)構(gòu)結(jié)構(gòu)及程序說(shuō)明

系統(tǒng)結(jié)構(gòu)

APP ---- mitmproxy ---- web server
      | record.py
   mysql.proxyed
      | gencase.py
   mysql.gencase
      | runcase.py
    測(cè)試結(jié)果

record.py 記錄

對(duì)服務(wù)器的請(qǐng)求症虑,包括header,url , method,cookie,data

gencase.py 生成擴(kuò)展測(cè)試用例

根據(jù)記錄的請(qǐng)求參數(shù)的類型,為每個(gè)參數(shù)生成不同的數(shù)據(jù)值归薛,組合為測(cè)試用例谍憔。

目前支持的POST請(qǐng)求數(shù)據(jù)有 form-data, json, plaintext,

runcase.py 運(yùn)行測(cè)試用例

取出產(chǎn)生的測(cè)試用例主籍,生成服務(wù)器請(qǐng)求习贫,向服務(wù)器發(fā)送請(qǐng)求。

mylib.py

mysql接口函數(shù)

testcaselib.py

測(cè)試用例生成策略函數(shù)庫(kù)

測(cè)試用例的擴(kuò)展:

這個(gè)版本僅對(duì)數(shù)字類型取值和字符串類型取值進(jìn)行了數(shù)據(jù)的簡(jiǎn)單擴(kuò)展千元。
見(jiàn) testcaselib.py 苫昌,對(duì)測(cè)試用例測(cè)擴(kuò)展 主要修改這個(gè)文件即可。

數(shù)字?jǐn)U展為:

     def extendcase_digital():
        max32= 1024*1024*1024*4-1
        max64 = (max32+1)*(max32+1)-1
        return (0,max32,max64,-max32,-max64)

字符串?dāng)U展為:

def extendcase_str():
    snull = ''
    s1k = 'a'*1024
   # s1M = 'a'*1024*1024
    return (snull, s1k)

GitHub 地址:

https://github.com/polygraph8/testingframework

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幸海,一起剝皮案震驚了整個(gè)濱河市祟身,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌物独,老刑警劉巖袜硫,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挡篓,居然都是意外死亡婉陷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門官研,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)憨攒,“玉大人,你說(shuō)我怎么就攤上這事阀参「渭” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蛛壳,是天一觀的道長(zhǎng)杏瞻。 經(jīng)常有香客問(wèn)我所刀,道長(zhǎng),這世上最難降的妖魔是什么捞挥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任浮创,我火速辦了婚禮,結(jié)果婚禮上砌函,老公的妹妹穿的比我還像新娘斩披。我一直安慰自己,他們只是感情好讹俊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布垦沉。 她就那樣靜靜地躺著,像睡著了一般仍劈。 火紅的嫁衣襯著肌膚如雪厕倍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天贩疙,我揣著相機(jī)與錄音讹弯,去河邊找鬼。 笑死这溅,一個(gè)胖子當(dāng)著我的面吹牛组民,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悲靴,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼邪乍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了对竣?” 一聲冷哼從身側(cè)響起庇楞,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎否纬,沒(méi)想到半個(gè)月后吕晌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡临燃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年睛驳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膜廊。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乏沸,死狀恐怖爪瓜,靈堂內(nèi)的尸體忽然破棺而出蹬跃,到底是詐尸還是另有隱情,我是刑警寧澤铆铆,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布蝶缀,位于F島的核電站丹喻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翁都。R本人自食惡果不足惜碍论,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柄慰。 院中可真熱鬧鳍悠,春花似錦、人聲如沸坐搔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)薯蝎。三九已至,卻和暖如春谤绳,著一層夾襖步出監(jiān)牢的瞬間占锯,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工缩筛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留消略,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓瞎抛,卻偏偏與公主長(zhǎng)得像艺演,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桐臊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345