Web API04-實現(xiàn)增加課程接口自動化實例

上一篇文章已經(jīng)知道如何使用python構(gòu)建相應(yīng)的HTTP請求以及定制請求頭和請求消息體等內(nèi)容,本篇文章進一步講解,主要以“實現(xiàn)一條增加課程的接口測試用例為主,來達到用python實現(xiàn)第一個接口自動化程序”進行展開講解熙兔。希望感興趣的小伙伴可以堅持看下去同時歡迎提出寶貴的意見讓我們一起進步储耐!

01:Cookie

1)獲取響應(yīng)中的cookie:如果某個響應(yīng)中包含一些 cookie,你可以快速訪問它們。r.cookies['cookie_name']

2)發(fā)送cookies到服務(wù)器:cookies={'cookie_name':cookie_value}

02:斷言(assert)

1)概述:聲明其布爾值必須為真的判定,如果發(fā)生異常就說明表達式為假。

2)語法:assert condition

3)實例:assert 1==1

03:增加課程接口自動化測試用例
(1)用例名稱:增加一門不存在的課程
(2)操作步驟:
1.使用工具調(diào)用增加課程API來增加一門系統(tǒng)不存在的課程
2.調(diào)用列出課程API查看課程是否正確增加
(3)期望結(jié)果:
1.返回結(jié)果成功手销,http消息體內(nèi)容如下:
{
    "retcode": 0,
    "id": 244
}
2.列出課程接口返回已增加的課程信息
04:增加課程接口自動化實例化操作

1)URL寫在config配置文件中

api_server='localhost'

2)定義登錄族奢、創(chuàng)建課程宏邮、列出課程函數(shù)

import  requests
from pprint import pprint
import src.api.config as config

g_sessionid=None
#登錄
def login(username,password):
    #定義全局變量
    global g_sessionid
    body = {
        'username': username,
        'password':password
            }
    res = requests.post(f'http://{config.api_server}/api/mgr/loginReq',
                        data=body)
    g_sessionid=res.cookies['sessionid']
    ret_obj = res.json()
    pprint(ret_obj)
    return ret_obj
#增加課程
def add_course(name,desc,display_idx):
    body={
        'action': 'add_course',
        'data': f'''
        {{
        "name":"{name}",
        "desc":"{desc}",
        "display_idx":"{display_idx}"
        }}'''}
    res = requests.post(f'http://{config.api_server}/api/mgr/sq_mgr/',
                        data=body,
                        cookies={'sessionid':g_sessionid})
    ret_obj = res.json()
    pprint(ret_obj)
    return ret_obj
#列出課程
def list_course(pagenum='1',pagesize='20'):
    res=requests.get(f'http://{config.api_server}/api/mgr/sq_mgr/',
                     params={
                        'action': 'list_course',
                        'pagenum': pagenum,
                        'pagesize': pagesize,
                     },
                     cookies={'sessionid':g_sessionid})
    ret_obj = res.json()
    pprint(ret_obj)
    return ret_obj

3)調(diào)用登錄、創(chuàng)建課程钳幅、列出課程函數(shù)且處理響應(yīng)數(shù)據(jù)

import random
from src.api.lib.api_lib import add_course, list_course, login
import traceback

try:
    # 登錄
    login('auto', 'sdfsdfsdf')
    # 添加之前列出課程,獲取返回結(jié)果
    courselist1 = list_course()['retlist']
    course_name = 'python_' + str(random.randint(0, 100000000))
    addret_obj = add_course(course_name,
                            'python基礎(chǔ)課程',
                            '1')
    if addret_obj.get('retcode', None) == 0:
        print('檢查點通過:retcode返回結(jié)果為0')
    else:
        print(f"檢查點失斞字汀:retcode返回結(jié)果為{addret_obj['retcode']}")
    # 添加之后再次列出課程
    courselist2 = list_course()['retlist']
    # 檢查多出一門課程
    if len(courselist2) - len(courselist1) == 1:
        print('檢查點通過:多出一門課程')
    else:
        print('檢查點失敻壹琛:未多出一門課程')
    # 多出課程內(nèi)容
    course = None
    for one in courselist2:
        if one not in courselist1:
            course = one
            break
    assert course['name'] == course_name
    assert course['desc'] == 'python基礎(chǔ)課程'
    assert course['display_idx'] == 1
    assert course['id'] == addret_obj['id']
    print('\n********用例001執(zhí)行通過********\n')
except:
    print('\n********用例001執(zhí)行失敗********\n',traceback.format_exc())
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市册赛,隨后出現(xiàn)的幾起案子钠导,更是在濱河造成了極大的恐慌,老刑警劉巖森瘪,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牡属,死亡現(xiàn)場離奇詭異,居然都是意外死亡扼睬,警方通過查閱死者的電腦和手機逮栅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窗宇,“玉大人措伐,你說我怎么就攤上這事【。” “怎么了侥加?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粪躬。 經(jīng)常有香客問我担败,道長,這世上最難降的妖魔是什么镰官? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任氢架,我火速辦了婚禮,結(jié)果婚禮上朋魔,老公的妹妹穿的比我還像新娘。我一直安慰自己卿操,他們只是感情好警检,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著害淤,像睡著了一般扇雕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窥摄,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天镶奉,我揣著相機與錄音,去河邊找鬼。 笑死哨苛,一個胖子當(dāng)著我的面吹牛鸽凶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播建峭,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼玻侥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亿蒸?” 一聲冷哼從身側(cè)響起凑兰,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎边锁,沒想到半個月后姑食,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡茅坛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年音半,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灰蛙。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡祟剔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摩梧,到底是詐尸還是另有隱情物延,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布仅父,位于F島的核電站叛薯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏笙纤。R本人自食惡果不足惜耗溜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望省容。 院中可真熱鬧抖拴,春花似錦、人聲如沸腥椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笼蛛。三九已至洒放,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滨砍,已是汗流浹背往湿。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工妖异, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人领追。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓他膳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蔓腐。 傳聞我的和親對象是個殘疾皇子矩乐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348