Deploy Test 代碼思路和編寫

前言:Deploy Test是基于Jenkins構(gòu)建代碼到測試環(huán)境或生產(chǎn)環(huán)境前的一步接口自動化執(zhí)行動作。
也可以理解成每次發(fā)版都要執(zhí)行一遍Deploy接口自動化,執(zhí)行通過才能到下一步開發(fā)代碼發(fā)到生產(chǎn)。

code編譯->預(yù)發(fā)布環(huán)境?->Deploy Test (通過,無failtrue)->code發(fā)目標環(huán)境


一.代碼思路

思路:不繁瑣,可以實現(xiàn)代碼已發(fā)布成功的測試

測試方式定義:每個項目只要接口測試通過。

接口代碼選型和框架:python3+unittest+request


二.編寫

例子,代碼:

Case.py

import json

import requests

import unittest

class RunMain:

? ? def send_post(self, url, data, headers=None):

? ? ? ? result = requests.post(url=url, headers=headers, data=data).json()

? ? ? ? res = json.dumps(result, ensure_ascii=False, sort_keys=True, indent=2)

? ? ? ? res = json.loads(res)

? ? ? ? return res

? ? def send_get(self, url, headers):

? ? ? ? result = requests.get(url=url, headers=headers)

? ? ? ? res = json.loads(result.text)

? ? ? ? return res

? ? def run_main(self, method, *args):

? ? ? ? result = None

? ? ? ? if method == 'post':

? ? ? ? ? ? result = self.send_post(*args)

? ? ? ? elif method == 'get':

? ? ? ? ? ? result = self.send_get(*args)

? ? ? ? else:

? ? ? ? ? ? print("請求類型錯誤?。。。。。。。?!")

? ? ? ? return result

class TestRun(unittest.TestCase, RunMain):

? ? # def setUp(self):

? ? #? ? # self.run_main1 = RunMain()? ? ? # 測試用例必須以test開頭

? ? #? ? pass

? ? # def tearDown(self):

? ? #? ? pass

? ? '''************公共接口****************\n'''

? ? def test_login(self):

? ? ? ? '''登陸'''

? ? ? ? global token

? ? ? ? headers = {"project-id": "1", "erp-version": "1.6", "Connection": "keep-alive", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"}

? ? ? ? url = 'http://host/api/admin/login'

? ? ? ? data = {

? ? ? ? ? ? "username": "jiangjiahao",

? ? ? ? ? ? "password": "abc456456",

? ? ? ? ? ? "channel": "2"

? ? ? ? }

? ? ? ? res = self.run_main('post', url, data, headers)

? ? ? ? token = res['data']['token']

? ? ? ? # print("token:", token)

? ? ? ? self.assertEqual(res['code'], 0, "公共接口檢查錯誤!")

? ? def test_get_project_list(self):

? ? ? ? '''獲取驗證碼'''

? ? ? ? url = 'http://host/api/erp/erp/project/getlist?'

? ? ? ? headers = {"token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取項目列表有異常??!")

? ? '''************CRM模塊****************\n'''

? ? def test_get_member_list(self):

? ? ? ? '''獲取會員列表'''

? ? ? ? url = 'http://host/api/crm/crm/member/index?_page=1&_page_size=10'

? ? ? ? headers = {"token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取會員列表有異常!!")

? ? def test_get_vouchers_list(self):

? ? ? ? '''獲取卡劵列表'''

? ? ? ? url = 'http://host/api/erp/erp/index/deal?_page=1&_page_size=5&tab=3'

? ? ? ? headers = {"token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取卡劵列表有異常!!")

? ? '''************ERP模塊****************\n'''

? ? def test_get_deal_list(self):

? ? ? ? '''獲取待辦列表'''

? ? ? ? url = 'http://host/api/crm/crm/vouchers/index?name=&type=0&status=0&vouchers_type=0&_page=1&_page_size=10&audit_status='

? ? ? ? headers = {"token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取代辦列表有異常?。?)

? ? def test_get_contract_list(self):

? ? ? ? '''獲取合同列表'''

? ? ? ? url = 'http://host/api/erp/erp/contract/index?_page=1&_page_size=10'

? ? ? ? headers = {"token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取合同列表有異常??!")

? ? '''************公眾號模塊****************\n'''

? ? def test_login_getCode_list(self):

? ? ? ? '''登陸發(fā)送驗證碼'''

? ? ? ? url = 'http://host/wechat/wechat/user/login/getCode?mobile=18682436420'

? ? ? ? Cookie = "unionid=; isGiftBagGeg=1; is_first_login=0; mobile=18682436420; token=%s" % token

? ? ? ? headers = {"Cookie": Cookie, "token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0", "app-system": "1", "app-version": "1"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0)

? ? ? ? self.assertEqual(res['msg'], "驗證碼已發(fā)送", "登陸發(fā)送驗證碼有異常??!")

? ? def test_user_me(self):

? ? ? ? '''獲取個人信息'''

? ? ? ? Cookie = "unionid=; isGiftBagGeg=1; is_first_login=0; mobile=18682436420; token=%s" % token

? ? ? ? url = 'http://host/api/user/me/index?'

? ? ? ? headers = {"Cookie": Cookie, "token": token, "project-id": "1", "erp-version": "1.6", "crm-version": "1.0", "app-system": "1", "app-version": "1"}

? ? ? ? res = self.run_main("get", url, headers)

? ? ? ? self.assertEqual(res['code'], 0, "獲取個人信息有異常??!")


執(zhí)行入口 Run_Depoly.py

import unittest

from caseimport TestRun


suite = unittest.TestSuite()

suite.addTest(TestRun("test_login"))

suite.addTest(TestRun("test_get_project_list"))

suite.addTest(TestRun("test_get_member_list"))

suite.addTest(TestRun("test_get_vouchers_list"))

suite.addTest(TestRun("test_get_deal_list"))

suite.addTest(TestRun("test_get_contract_list"))

suite.addTest(TestRun("test_user_me"))

unittest.TextTestRunner(verbosity=3).run(suite)

執(zhí)行命令:python?Run_Depoly.py

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容