test_my.py 27 KB
Newer Older
huangchengcheng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#-*-coding:utf-8  -*-
__testauthor__ = "huangchengcheng"
__time__ = "2021/5/21 16:47"

import json
import os

import allure
import config
import pytest
import xlrd
from common.db import MYSQL
from common.tools import request_main
from common.utils import getExcelData
15
from config import BaseConfig
taoke committed
16
#111111
huangchengcheng committed
17 18 19

@allure.feature("我的")
class TestMy:
huangchengcheng committed
20
    workbook = xlrd.open_workbook(f'{config.BaseConfig.root_path}/test_case_data/bmc/bmc_my_2021513.xlsx')
huangchengcheng committed
21 22 23 24 25

    def setup_class(self):
        config.BMCConfig.headers["Pvt-Token"]=getattr(config.BMCConfig,"bmc_pvt_token")
        config.BMCConfig.headers["Token"]=getattr(config.BMCConfig,"bmc_token")
        self.headers=config.BMCConfig.headers
26
        mysql = MYSQL(*BaseConfig.test_mysql)
27
        mysql.ExecuNonQuery( "insert into edl_public.feedback_type values ('10008611','自动化类型','0','1','0','2021-05-01 16:51:12','2021-05-01 16:51:12','520100,330100,500100');")
huangchengcheng committed
28
        mysql.ExecuNonQuery( "INSERT INTO edl_public.trade (user_id,phone,brand_id,shop_id,trade_type,trade_amount,privilege_amount,pay_amount,uuid,trade_no,trade_source,memo,gmt_finished,status,gmt_create,gmt_modified,shop_name,brand_name,trade_status,remark_status,verification_status,settlement_status,refund_status,close_status,gmt_closed,close_memo,expired_status,gmt_expired,bill_status) VALUES (598137,'17822000000',48,112,2,2.55,0.00,2.55,'7ac6253d-8586-475d-8474-be848fe5c4b6','hik202105081390911897531973632',1,NULL ,NULL ,1,'2021-05-08 14:10:13.000','2021-05-24 17:25:30.000','回归测试门店1','回归(个人)1',3,'N/A','N/A','N/A','N/A','N/A',NULL,NULL,'N/A','2021-06-07 14:10:13.000','N/A');")
huangchengcheng committed
29 30 31 32 33 34 35 36 37 38 39


    @allure.story("个人信息获取")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"我的","Myinfouserngs"))
    def test_myinfouserngs(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
40
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
41
        try:
huangchengcheng committed
42
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
43 44 45 46 47 48 49 50 51 52 53 54
        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,"我的","Myinfonickname"))
    def test_myinfonickname(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
55
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
56
        try:
huangchengcheng committed
57
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
58 59 60 61 62 63 64 65 66 67 68 69 70
        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,"我的","Myinfoavatar"))
    def test_myinfoavatar(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
71
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
72
        try:
huangchengcheng committed
73
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
74 75 76 77 78 79 80 81 82 83 84 85 86
        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,"我的","Myinfoaddresslist"))
    def test_myinfoaddresslist(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
87
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
88
        try:
huangchengcheng committed
89
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
90 91 92 93 94 95 96 97 98 99 100 101 102
        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,"我的","Myinfoarea"))
    def test_myinfoarea(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
103
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
104
        try:
huangchengcheng committed
105
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
        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,"我的","Myinfoaddressadd"))
    def test_myinfoaddressadd(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        indata["reqData"]["address"]="接口自动化详细地址"
        indata["reqData"]["recipientName"] = "自动化"
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
121
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
122
        try:
huangchengcheng committed
123
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
124 125 126 127 128 129 130 131 132 133 134 135
        except Exception as e:
            raise e


    @pytest.fixture(scope="function")
    def test_addaddressId(self):
        url = f'{config.BMCConfig.host}/user/address/add'
        method='post'
        data={"address":"详细地址","city":"北京市","cityCode":"110100","county":"东城区","countyCode":"110101","defaultAddressFlag":'false',"province":"北京市","provinceCode":"110000","recipientName":"李倩2","recipientPhone":"15283936399"}
        data["recipientName"] = "自动化"
        data["address"] = "接口自动化详细地址"
        expectdata={ "success": 'true',"code": 1000, "msg": "操作成功"}
huangchengcheng committed
136
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
137
        try:
huangchengcheng committed
138
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
139 140 141 142 143 144 145 146 147 148 149 150
        except Exception as e:
            raise e


    @pytest.mark.usefixtures('test_addaddressId')
    @allure.story("用户收货地址")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"我的","Myinfoaddressupdate"))
    def test_myinfoaddressupdate(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
151 152
        mysql = MYSQL(*BaseConfig.test_mysql)
        addressId=mysql.ExecuQuery("SELECT id FROM edl_public.user_address  WHERE address='接口自动化详细地址';")[-1]["id"]
huangchengcheng committed
153 154 155 156 157 158 159 160 161
        if indata["reqData"]["address"]=="存在":
            indata["reqData"]["addressId"]=addressId
            self.data=indata["reqData"]
        elif indata["reqData"]["address"]=="addressId为空":
            self.data = indata["reqData"]
        elif indata["reqData"]["address"] == "addressId不存在":
            indata["reqData"]["addressId"]=addressId+36598555
            self.data = indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
162
        self.res=request_main(url,self.headers,method,self.data)
huangchengcheng committed
163
        try:
huangchengcheng committed
164
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
165 166 167 168 169 170 171 172 173 174 175 176 177
        except Exception as e:
            raise e



    @pytest.mark.usefixtures('test_addaddressId')
    @allure.story("用户收货地址")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"我的","Myinfoaddressdefault"))
    def test_myinfoaddressdefault(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
178 179
        mysql = MYSQL(*BaseConfig.test_mysql)
        addressId = mysql.ExecuQuery("SELECT id FROM edl_public.user_address  WHERE address='接口自动化详细地址';")[-1]["id"]
huangchengcheng committed
180 181 182 183 184 185 186 187 188 189
        if len(indata["reqData"]["addressId"])==0:
            data = indata["reqData"]
        else:
            if indata["reqData"]["addressId"]=='8888':
                indata["reqData"]["addressId"]=addressId+8888
                data = indata["reqData"]
            else:
                indata["reqData"]["addressId"]=addressId
                data = indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
190
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
191
        try:
huangchengcheng committed
192
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
193 194 195 196 197 198
        except Exception as e:
            raise e



    @pytest.mark.usefixtures("test_addaddressId")
199
    @allure.story("用户收货地址")
huangchengcheng committed
200 201 202 203 204 205 206
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"我的","Myinfoaddressdelete"))
    def test_myinfoaddressdelete(self,indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        expectdata = indata["expectData"]
207 208
        mysql = MYSQL(*BaseConfig.test_mysql)
        addressId = mysql.ExecuQuery("SELECT id FROM edl_public.user_address  WHERE address='接口自动化详细地址';")[-1]["id"]
huangchengcheng committed
209 210 211 212 213
        if len(indata["reqData"]["addressId"])==0:
            data = indata["reqData"]
        else:
            indata["reqData"]["addressId"]=addressId
            data = indata["reqData"]
huangchengcheng committed
214
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
215
        try:
huangchengcheng committed
216
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
217 218 219 220 221 222 223 224 225 226 227 228 229 230
        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,"我的","Myserviceguesses"))
    def test_myserviceguesses(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
231
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
232
        try:
huangchengcheng committed
233
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
234 235 236 237 238 239 240 241 242 243 244 245 246
        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,"我的","Myservicehotlist"))
    def test_myservicehotlist(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
247
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
248
        try:
huangchengcheng committed
249
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
250 251
        except Exception as e:
            raise e
huangchengcheng committed
252 253 254 255 256 257 258 259 260 261 262


    @allure.story("智能问答")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata",getExcelData.get_excelData(workbook,"我的","Myservicechat"))
    def test_myservicechat(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
263
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
264
        try:
huangchengcheng committed
265
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
266 267 268 269 270 271 272 273 274 275 276 277 278
        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,"我的","Messagecentergroups"))
    def test_messagecentergroups(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
279
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
280
        try:
huangchengcheng committed
281
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
282 283 284 285 286 287 288 289 290 291 292 293 294
        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,"我的","MessagecenterunRead"))
    def test_messagecenterunread(self,indata):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
295
        self.res=request_main(url,self.headers,method,data)
huangchengcheng committed
296
        try:
huangchengcheng committed
297
            assert self.res["code"]==expectdata["code"]
huangchengcheng committed
298 299 300 301 302 303 304 305 306 307 308 309 310 311
        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, "我的", "Messagecenterlist"))
    def test_messagecenterlist(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
312
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
313
        try:
huangchengcheng committed
314
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
315 316 317 318
        except Exception as e:
            raise e


319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
    @pytest.fixture(scope="function")
    def messagecenterlist(self):
        url = f'{config.BMCConfig.host}/msg/list'
        method ='get'
        data={"timestamp":0,"size":20,"bizType":"msg","groupId":1}
        res = request_main(url, self.headers, method, data)
        return res["data"]["list"]



    @allure.story("读消息")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "我的", "Messagecenterread"))
    def test_messagecenterread(self, indata,messagecenterlist):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        if messagecenterlist==[]:
            pytest.skip("无消息可读取")
        else:
            indata["reqData"]['msgId']=messagecenterlist[0]["msgId"]
            data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
342
        self.res = request_main(url, self.headers, method, data)
343
        try:
huangchengcheng committed
344
            assert self.res["code"] == expectdata["code"]
345 346
        except Exception as e:
            raise e
huangchengcheng committed
347 348 349 350 351 352 353 354 355 356 357


    @allure.story("全部已读")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "我的", "Messagecenterall"))
    def test_messagecenterall(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
358
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
359
        try:
huangchengcheng committed
360
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
361 362 363 364 365 366 367 368 369 370 371 372 373
        except Exception as e:
            raise e


    @allure.story("获取公网H5页面地址")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "我的", "Basich"))
    def test_basich5(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
374
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
375
        try:
huangchengcheng committed
376
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
377 378 379 380 381 382 383 384 385 386 387 388 389
        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, "我的", "Basiclist"))
    def test_basiclist(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
390
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
391
        try:
huangchengcheng committed
392
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
393 394 395 396 397 398 399 400 401 402 403 404 405
        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, "我的", "Basictradelist"))
    def test_basictradelist(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
406
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
407
        try:
huangchengcheng committed
408
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
409 410 411 412 413 414 415 416 417 418 419 420 421
        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, "我的", "Basicstatuslist"))
    def test_basicstatuslist(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
422
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
423
        try:
huangchengcheng committed
424
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440
        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, "我的", "BasiccouponCode"))
    def test_basiccouponCode(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        expectdata = indata["expectData"]
        if indata["reqData"]["tradeId"]=="不存在id":
            indata["reqData"]["tradeId"]=1234567890
            data = indata["reqData"]
        else:
441
            mysql = MYSQL(*BaseConfig.test_mysql)
huangchengcheng committed
442 443 444
            tradeId = mysql.ExecuQuery("select id from edl_public.trade where status=1 and trade_status=2 limit 1;")[0]["id"]
            indata["reqData"]["tradeId"]=tradeId
            data=indata["reqData"]
huangchengcheng committed
445
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
446
        try:
huangchengcheng committed
447
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464
        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, "我的", "Basiccancel"))
    def test_basiccancel(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        expectdata = indata["expectData"]
        if isinstance(indata["reqData"]["tradeId"],str):
            if indata["reqData"]["tradeId"] == "不存在id":
                indata["reqData"]["tradeId"] = 1234567890
                data = indata["reqData"]
            else:
465
                mysql = MYSQL(*BaseConfig.test_mysql)
huangchengcheng committed
466 467 468 469 470
                mysql.ExecuNonQuery("update edl_public.trade set trade_status='2'where user_id='598137';")
                tradeId=mysql.ExecuQuery("select id from edl_public.trade where trade_status=2 and user_id='598137';")[-1]["id"]
                indata["reqData"]["tradeId"] = tradeId
                data = indata["reqData"]
        else:
471
            mysql = MYSQL(*BaseConfig.test_mysql)
huangchengcheng committed
472 473 474 475
            mysql.ExecuNonQuery("update edl_public.trade set trade_status='1'where user_id='598137';")
            tradeId = mysql.ExecuQuery("select id from edl_public.trade where status=1 and user_id='598137';")[-1]["id"]
            indata["reqData"]["tradeId"] = tradeId
            data = indata["reqData"]
huangchengcheng committed
476
        self.res = request_main(url, self.headers, method, data)
huangchengcheng committed
477
        try:
huangchengcheng committed
478
            assert self.res["code"] == expectdata["code"]
huangchengcheng committed
479 480 481
        except Exception as e:
            raise e

482 483 484 485 486 487 488 489 490 491

    @allure.story("获取意见反馈类型")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "我的", "FeedbackfeedbackType"))
    def test_feedbackfeedbackType(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
492
        self.res = request_main(url, self.headers, method, data)
493
        try:
huangchengcheng committed
494
            assert self.res["code"] == expectdata["code"]
495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511
        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, "我的", "Feedbackadd"))
    def test_feedbackadd(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        if indata["reqData"]['content']=="不传类型id自动化测试":
            data=indata["reqData"]
        else:
            indata["reqData"]["feedbackTypeId"]=10008611
            data=indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
512
        self.res = request_main(url, self.headers, method, data)
513
        try:
huangchengcheng committed
514
            assert self.res["code"] == expectdata["code"]
515 516 517 518 519 520 521 522 523 524 525 526 527
        except Exception as e:
            raise e



    @pytest.fixture(scope="function")
    def feedbackadd(self):
        url=f'{config.BMCConfig.host}/v1/feedback/add'
        feedbackTypeId=10008611
        print(feedbackTypeId)
        data = {"content":"自动化新用户意见数据","feedbackTypeId":feedbackTypeId}
        method = "post"
        res=request_main(url,self.headers,method,data)
528
        mysql = MYSQL(*BaseConfig.test_mysql)
529 530 531 532 533 534 535 536 537 538 539 540 541 542
        feedbackId=mysql.ExecuQuery("select feedback_id from edl_public.feedback_chat_record where user_id='598137' and content='自动化新用户意见数据';")[-1]["feedback_id"]
        return feedbackId


    @pytest.mark.usefixtures("feedbackadd")
    @allure.story("意见反馈列表")
    @allure.description("creator:李倩,autoCreator:huangchengcheng")
    @allure.title("{indata[testPoint]}")
    @pytest.mark.parametrize("indata", getExcelData.get_excelData(workbook, "我的", "Feedbacklist"))
    def test_feedbacklist(self, indata):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
543
        self.res = request_main(url, self.headers, method, data)
544
        try:
huangchengcheng committed
545
            assert self.res["code"] == expectdata["code"]
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560
        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, "我的", "Feedbackdetails"))
    def test_feedbackdetails(self, indata,feedbackadd):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        indata["reqData"]["feedbackId"]=feedbackadd
        data = indata["reqData"]
        expectdata = indata["expectData"]
huangchengcheng committed
561
        self.res = request_main(url, self.headers, method, data)
562
        try:
huangchengcheng committed
563
            assert self.res["code"] == expectdata["code"]
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578
        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, "我的", "FeedbackcheckFeedbackSee"))
    def test_feedbackcheckFeedbackSee(self, indata,feedbackadd):
        url = f'{config.BMCConfig.host}/{indata["url"]}'
        method = indata["method"]
        data = indata["reqData"]
        expectdata = indata["expectData"]
        otherexpectData=indata["otherExpectData"]
        if indata['testPoint']=="有未读信息":
579
            mysql = MYSQL(*BaseConfig.test_mysql)
580 581 582
            mysql.ExecuNonQuery("update edl_public.feedback_main set read_flag='0'where user_id='598137'and feedback_type_id='10008611';")
            mysql.ExecuNonQuery("update edl_public.feedback_main set status='1'where user_id='598137'and feedback_type_id='10008611';")
        else:
583
            mysql = MYSQL(*BaseConfig.test_mysql)
huangchengcheng committed
584
            mysql.ExecuNonQuery( "update edl_public.feedback_main set read_flag='1'where user_id='598137'and feedback_type_id='10008611';")
huangchengcheng committed
585
        self.res = request_main(url, self.headers, method, data)
586
        try:
huangchengcheng committed
587 588
            assert self.res["code"] == expectdata["code"]
            assert self.res["data"]["flag"]==otherexpectData["data"]["flag"]
589 590 591 592 593 594 595 596 597 598 599 600 601 602
        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,"我的","Feedbacksolve"))
    def test_feedbacksolve(self,indata,feedbackadd):
        url=f'{config.BMCConfig.host}/{indata["url"]}'
        method=indata["method"]
        indata["reqData"]["feedbackId"] = feedbackadd
        data=indata["reqData"]
        expectdata=indata["expectData"]
huangchengcheng committed
603
        self.res=request_main(url,self.headers,method,data)
604
        try:
huangchengcheng committed
605
            assert self.res["code"]==expectdata["code"]
606 607 608
        except Exception as e:
            raise e

609

610
    def teardown(self):
611
        mysql = MYSQL(*BaseConfig.test_mysql)
612 613 614
        mysql.ExecuNonQuery("delete from edl_public.feedback_type where id='10008611';")
        mysql.ExecuNonQuery("delete from edl_public.feedback_chat_record where user_id='598137'")
        mysql.ExecuNonQuery("delete from edl_public.feedback_main where user_id='598137'")
huangchengcheng committed
615 616

        allure.attach(f"{self.res}",'响应结果',allure.attachment_type.TEXT)
617 618


huangchengcheng committed
619
    def teardown_class(self):
620
        mysql = MYSQL(*BaseConfig.test_mysql)
huangchengcheng committed
621
        mysql.ExecuNonQuery("update edl_public.user set nickname='自动化' where id='598137';")
huangchengcheng committed
622
        mysql.ExecuNonQuery( "delete from edl_public.user_address where user_id='598137'and address in ('接口自动化详细地址','存在');")
623
        mysql.ExecuNonQuery("delete from edl_public.trade where user_id='598137'and trade_no='hik202105081390911897531973632';")
huangchengcheng committed
624

625 626
# if __name__ == '__main__':
#     pytest.main(["-s","-v","test_my.py",'--alluredir', './bmc/report',"--clean-alluredir"])
627
    # pytest.main(['-v', '-s', "test_my.py::TestMy::test_basiccouponCode", '--alluredir', './bmc/report', "--clean-alluredir"])
628
    # os.system('allure serve ./bmc/report')
taoke committed
629 630 631