test_roadreview.py 10.6 KB
Newer Older
huangchengcheng committed
1 2 3 4 5 6 7 8 9 10
#-*-coding:utf-8  -*-
__testauthor__ = "huangchengcheng"
__time__ = "2021/5/20 15:16"

import datetime
import os
import allure
import config
import pytest
import xlrd
huangchengcheng committed
11
from common.db import MYSQL
huangchengcheng committed
12 13 14
from common.tools import request_main
from common.utils import getExcelData
from service.login import BMC
15
from config import BaseConfig
huangchengcheng committed
16 17 18 19 20 21 22 23 24 25 26 27 28



@allure.feature("非交通占用道路审查")
class TestRoadreview:
    workbook=xlrd.open_workbook(f'{config.BaseConfig.root_path}/test_case_data/bmc/bmc_road_review_2021513.xlsx')

    def setup_class(self):
        indata = {"phone": "17822000000", "encodedGesture": "67e6d10010533eed4bbe9659863bf6ee"}
        res = BMC().bmc_login(indata)
        config.BMCConfig.headers["bmc_token"]=res[0]
        config.BMCConfig.headers["bmc_pvt_token"]=res[1]
        self.headers=config.BMCConfig.headers
29 30
        mysql=MYSQL(*BaseConfig.test_mysql)
        self.pvt_user_id=mysql.ExecuQuery("SELECT id FROM edl_private.user WHERE phone='17822000000';")[0]["id"]
huangchengcheng committed
31 32
        #不同账号登录,将sql中的user_id修改为获取到的用户专网id:self.pvt_user_id

huangchengcheng committed
33 34 35 36 37 38 39 40 41 42

    @allure.story("首页")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadlist"))
    def test_roadlist(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        data=indata["reqData"]
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
43
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
44
        try:
huangchengcheng committed
45
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
46 47 48 49 50 51 52 53 54 55 56 57 58
        except Exception as e:
            raise e


    @allure.story("业务申请")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadgetBefore"))
    def test_roadgetBefore(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        data=indata["reqData"]
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
59
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
60
        try:
huangchengcheng committed
61
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
62 63 64 65 66 67 68 69 70 71 72 73 74
        except Exception as e:
            raise e


    @allure.story("业务申请")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadmylist"))
    def test_roadmylist(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        data=indata["reqData"]
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
75
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
76
        try:
huangchengcheng committed
77
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
78 79 80 81 82 83 84 85
        except Exception as e:
            raise e


    @allure.story("业务申请")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadaddBasicInfo"))
86
    def test_roadaddbasicinfo(self,indata):
huangchengcheng committed
87 88 89 90
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        data=indata["reqData"]
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
91
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
92
        try:
huangchengcheng committed
93
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
94 95 96 97
        except Exception as e:
            raise e


98 99 100 101 102 103
    @pytest.fixture(scope='function')
    def roadaddbasicinfo(self):
        url=f'{config.BMCConfig.host}/pvtapi/occupy/road/addBasicInfo'
        data={"isHasNotFinish": 0,"peoplePhone": "18800000044","companyName": "666","organizeCode": "168685858588855850","peopleName": "接口自动化","id":'null'}
        method='post'
        res=request_main(url,self.headers,method,data)
104
        mysql = MYSQL(*BaseConfig.test_mysql)
105 106 107 108
        basic_info_id = mysql.ExecuQuery("select id from db_gy_dmsmp.occupy_road_apply where user_id=393038 and people_phone='18800000044'order by id;")[-1]["id"]
        return basic_info_id


huangchengcheng committed
109 110 111 112
    @allure.story("业务申请")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadaddOccupyRoadInfo"))
113
    def test_roadaddoccupyroadinfo(self,indata,roadaddbasicinfo):
huangchengcheng committed
114 115 116 117 118 119 120 121 122 123
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        today=datetime.datetime.now()
        offset=datetime.timedelta(days=1)
        beginDate=(today + offset).strftime('%Y-%m-%d')
        endDate=(today+offset+offset).strftime('%Y-%m-%d')
        expectdata=indata["expectData"]
        method=indata["method"]
        indata["reqData"]["beginDate"]=beginDate
        indata["reqData"]["endDate"]=endDate
        #处理开始结束时间不能小于当前日期问题
124
        indata["reqData"]["id"]=roadaddbasicinfo
huangchengcheng committed
125 126
        #处理关联任务的请求id
        data=indata["reqData"]
huangchengcheng committed
127
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
128
        try:
huangchengcheng committed
129
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
130 131 132 133
        except Exception as e:
            raise e


134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
    @pytest.fixture(scope="function")
    def roadaddoccupyroadinfo(self,roadaddbasicinfo):
        url = f'{config.BMCConfig.host}//pvtapi/occupy/road/addOccupyRoadInfo'
        today = datetime.datetime.now()
        offset = datetime.timedelta(days=1)
        beginDate = (today + offset).strftime('%Y-%m-%d')
        endDate = (today + offset + offset).strftime('%Y-%m-%d')
        reqdata={ "operateType":1,"operateReason":2,"occupyType":2,"beginDate":"2021-05-10","endDate":"2021-07-10","roadRemark":"这是接口自动化数据","width":"2","length": "10","vehicle":[{ "plateType":"蓝牌","plateNum":"京A 54344"}],"time": [{"beginTime": "06:00","endTime": "18:00"}],"roadName": "四川省成都市双流区湖畔路北段","roadLng": 104.090169,"roadLat": 30.402453,"id": "404"}
        method = 'post'
        reqdata["beginDate"] = beginDate
        reqdata["endDate"] = endDate
        # 处理开始结束时间不能小于当前日期问题
        reqdata["id"] = roadaddbasicinfo
        # 处理关联任务的请求id
        data =reqdata
        res = request_main(url, self.headers, method, data)
150
        return roadaddbasicinfo
151 152 153



huangchengcheng committed
154 155 156 157
    @allure.story("业务申请")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "非交通占用道路审查", "roadaddpFile"))
158
    def test_roadaddfile(self, indata,roadaddoccupyroadinfo):
huangchengcheng committed
159 160 161
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        expectdata = indata["expectData"]
        method = indata["method"]
162
        indata["reqData"]["id"]=roadaddoccupyroadinfo
huangchengcheng committed
163
        data = indata["reqData"]
huangchengcheng committed
164
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
165
        try:
huangchengcheng committed
166
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
167 168 169 170 171 172 173 174
        except Exception as e:
            raise e



    @allure.story("申请详情")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
175 176
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roaddetail"))
    def test_roaddetail(self,indata,roadaddbasicinfo):
huangchengcheng committed
177
        url=f'{config.BMCConfig.host}/{indata["url"]}'
178 179
        indata["reqData"]["id"] = roadaddbasicinfo
        data = indata["reqData"]
huangchengcheng committed
180 181
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
182
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
183
        try:
huangchengcheng committed
184
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
185 186 187 188
        except Exception as e:
            raise e


huangchengcheng committed
189 190 191 192
    @allure.story("重新提交")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadreSubmit"))
193
    def test_roadresubmit(self,indata,roadaddbasicinfo):
huangchengcheng committed
194
        url=f'{config.BMCConfig.host}/{indata["url"]}'
195 196
        indata["reqData"]["id"]=roadaddbasicinfo
        data = indata["reqData"]
huangchengcheng committed
197 198
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
199
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
200
        try:
huangchengcheng committed
201
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
202 203 204 205 206 207 208 209
        except Exception as e:
            raise e


    @allure.story("查看意见书")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadnoticeDetail"))
210
    def test_roadnoticedetail(self,indata,roadaddbasicinfo):
huangchengcheng committed
211
        url=f'{config.BMCConfig.host}/{indata["url"]}'
212 213
        indata["reqData"]["id"]=roadaddbasicinfo
        data = indata["reqData"]
huangchengcheng committed
214 215
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
216
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
217
        try:
huangchengcheng committed
218
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
219 220 221 222 223 224 225 226 227 228 229 230 231
        except Exception as e:
            raise e


    @allure.story("占道施工公示")
    @allure.description("creator:林静文,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"非交通占用道路审查","roadtemOccupyRoad"))
    def test_roadtemoccupyroad(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        data=indata["reqData"]
        expectdata=indata["expectData"]
        method=indata["method"]
huangchengcheng committed
232
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
233
        try:
huangchengcheng committed
234
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
235 236 237 238 239
        except Exception as e:
            raise e


    def teardown_class(self):
240
        mysql = MYSQL(*BaseConfig.test_mysql)
241
        mysql.ExecuNonQuery("delete from db_gy_dmsmp.occupy_road_apply where user_id='393038' and people_phone='18800000044' ;")
huangchengcheng committed
242

huangchengcheng committed
243 244 245 246
    def teardown(self):
        allure.attach(f'{self.res}','响应结果',allure.attachment_type.TEXT)


huangchengcheng committed
247 248 249 250




251
# if __name__ == '__main__':
252 253

    # 生成报告数据
254 255
    # pytest.main(['-v', '-s', "test_roadreview.py", '--alluredir', './bmc/report',"--clean-alluredir"])
    # pytest.main(['-v', '-s', "test_roadreview.py::TestRoadreview::test_roadaddfile", '--alluredir', './bmc/report', "--clean-alluredir"])
256
    # 打开报告
257
    # os.system('allure serve ./bmc/report')