test_tms_common1.py 6.1 KB
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import unittest
import requests
import json
import urllib3
from commons import ConfigDB as db
from commons import common as com
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class test_tms_common(unittest.TestCase):
    
    @classmethod
    def setUpClass(cls):
        cls.dict={}
        cls.se=requests.session()
        cls.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
        url=com.get_api_config('login', 'login01', 'url')
        header=json.loads(com.get_api_config('login', 'login01', 'header'))
        body=com.get_api_config('login', 'login01', 'body')
        r=cls.se.post(url,data=body,headers=header,allow_redirects=False,proxies=cls.proxies)
        print(r.status_code)
    

    def test_01_saveOrUpdate(self):
        #创建客户单必加test_
        url=com.get_api_config('saveOrUpdate', 'saveOrUpdate01', 'url')
        header01=json.loads(com.get_api_config('saveOrUpdate', 'saveOrUpdate01', 'update_header01'))
        header02=json.loads(com.get_api_config('saveOrUpdate', 'saveOrUpdate01', 'update_header02'))
        body=json.loads(com.get_api_config('saveOrUpdate', 'saveOrUpdate01', 'body'))
        self.se.headers.update(header01)
        self.se.headers.update(header02)
        r=self.se.post(url,data=body,allow_redirects=False,proxies=self.proxies)
        print(r.json())
        self.dict["customerOrderNum"]=db.mysql_selectOne("SELECT `code` FROM `customer_order` WHERE id='%d';"%r.json()['data'])[0]
        
    @unittest.skipDepend(depend="test_01_saveOrUpdate")
    def test_02_customerOrderSubmit(self):
        #客户单拆单为承运单
        url=com.get_api_config('customerOrderSubmit', 'customerOrderSubmit01', 'url')
        header01=json.loads(com.get_api_config('customerOrderSubmit', 'customerOrderSubmit01', 'update_header01'))
        body=json.loads(com.get_api_config('customerOrderSubmit', 'customerOrderSubmit01', 'body'))
        body[0]["code"]=self.dict["customerOrderNum"]
        body[1]["code"]=self.dict["customerOrderNum"]
        self.se.headers.update(header01)
        r=self.se.post(url,data=json.dumps(body),allow_redirects=False,proxies=self.proxies)
        print(r.json())
        self.dict["undertakeOrderID1"]=db.mysql_selectOne('SELECT id FROM `undertake_order` WHERE `code` ="%s";'%r.json()['data'][0])[0]
        self.dict["undertakeOrderID2"]=db.mysql_selectOne('SELECT id FROM `undertake_order` WHERE `code` ="%s";'%r.json()['data'][1])[0]
        print(self.dict)
    
    @unittest.skipDepend(depend="test_02_customerOrderSubmit")
    def test_03_undertaskOrderSubmit(self):
        #承运单合成货单
        url=com.get_api_config('undertaskOrderSubmit', 'undertaskOrderSubmit01', 'url')
        header01=json.loads(com.get_api_config('undertaskOrderSubmit', 'undertaskOrderSubmit01', 'update_header01'))
        body=json.loads(com.get_api_config('undertaskOrderSubmit', 'undertaskOrderSubmit01', 'body'))
        body['ids'][1]=self.dict["undertakeOrderID1"]
        body['ids'][2]=self.dict["undertakeOrderID2"]
        self.se.headers.update(header01)
        r=self.se.post(url,data=json.dumps(body),allow_redirects=False,proxies=self.proxies)
        print(r.json())
        self.dict["transportOrderID"]=db.mysql_selectOne("SELECT `id` FROM `transport_order` WHERE firm_code = 'CC201905200058' ORDER BY id DESC LIMIT 1;")[0]
        self.dict["undertakeGoodsID"]=db.mysql_selectOne("SELECT `id` FROM undertake_goods ORDER BY id DESC LIMIT 1;")[0]
    
    @unittest.skipDepend(depend="test_03_undertaskOrderSubmit")
    def test_04_updateTransportOrderLoaded(self):
        #货单进行发货
        url=com.get_api_config('updateTransportOrderLoaded', 'updateTransportOrderLoaded01', 'url')
        header01=json.loads(com.get_api_config('updateTransportOrderLoaded', 'updateTransportOrderLoaded01', 'update_header01'))
        body=json.loads(com.get_api_config('updateTransportOrderLoaded', 'updateTransportOrderLoaded01', 'body'))
        body['id']=self.dict["transportOrderID"]
        body['undertTakeGoodsUpdateDtoList[0].goodsId']=(self.dict["undertakeGoodsID"]-1)
        body['undertTakeGoodsUpdateDtoList[1].goodsId']=self.dict["undertakeGoodsID"]
        self.se.headers.update(header01)
        r=self.se.post(url,data=body,allow_redirects=False,proxies=self.proxies)
        print(r.json())

    @unittest.skipDepend(depend="test_04_updateTransportOrderLoaded")
    def test_05_departTransportOrder(self):
        #货单进行发车
        url=com.get_api_config('departTransportOrder', 'departTransportOrder01', 'url')
        body=json.loads(com.get_api_config('departTransportOrder', 'departTransportOrder01', 'body'))
        body['id']=self.dict["transportOrderID"]
        r=self.se.post(url,data=body,allow_redirects=False,proxies=self.proxies)
        print(r.json())
        print(body,type(body))
#     def tearDown(self):
#         print("tearDown")
        
    @classmethod
    def tearDownClass(cls):
        print(cls.dict)

if __name__ == "__main__":
#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。
#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。

    unittest.main(verbosity=2)

# #    以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码,
# #    在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台
#     current_suite = unittest.TestSuite()
#     current_suite.addTest(submitOrder("test_01"))
#     #以列表形式添加多个测试用例
# #     current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")])
#     # 执行测试
#     runner = unittest.TextTestRunner()
#     #runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01"))
#     runner.run(current_suite)