#-*-coding:utf-8 -*- __testauthor__ = "huangchengcheng" __time__ = "2021/6/15 10:19" import os import allure import pytest import xlrd from common.db import MYSQL from common.tools import request_main from common.utils.getExcelData import get_excelData from config import BaseConfig, BMCConfig @allure.feature("电动车") class TestElebicycle: workbook=xlrd.open_workbook(f'{BaseConfig.root_path}/test_case_data/bmc/bmc_prize20210531.xlsx') def setup_class(self): mysql=MYSQL(*BaseConfig.test_mysql) mysql.ExecuNonQuery("INSERT INTO edl_public.user_prize (user_id,`type`,source,prize_name,prize_img,name,phone,address_region,address_detail,coupon_id,tips,tips_mini,receive_flag,redeem_way,coupon_type,coupon_redeem_url,use_status,external_coupon,gmt_expiry_start,gmt_expiry_end,is_show_receive,gmt_create,gmt_modified,receive_point_id) VALUES (598137,1,'自动化奖品','100元加油卡',NULL,NULL,NULL,NULL,NULL,NULL,'<p>领奖地址:贵阳市南明区遵义路15号贵阳广播电视大楼一楼FM102.7贵阳交通广播广告接待中心——交通1027发奖办公室</p><p>领奖时间:周一至周五10:00-12:00,14:00-16:00(节假日除外)</p>',NULL,0,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'2020-06-11 10:59:59.000','2020-08-07 14:56:47.000',NULL);") mysql.ExecuNonQuery("INSERT INTO edl_public.article (display_type,source,title,part_content,imgs,content_url,content,status,verify_status,views,likes,collects,dislikes,feedback_flag,create_by,gmt_create,modified_by,gmt_modified,gmt_release,is_time,is_share,is_recommed,gmt_recommend,city_id) VALUES (2,'自动化','测试的内容','为贯彻落实“9.20”全国公安机关70周年大庆安保维稳战前动员视频会议精神,推动华北片区区域联合整治','/group1/M00/00/6F/CsXsq12dWsaAeXHGAABg40-RswI41.jpeg',NULL,'自动化',1,5,144,1,2,0,0,NULL,'2019-10-09 11:58:03.000',NULL,'2020-07-18 13:31:21.000','2019-10-10 11:48:22.000',0,0,2,NULL,',520100,');") mysql.ExecuNonQuery("INSERT INTO edl_public.user_login_device (user_id,device_code,device_name,device_model,gmt_login,status) VALUES (598137,'ffffffffa6dedb72ffffffffa6dedb73','ART-AL00x','HUAWEI nava','2021-03-30 15:58:43.000',1);") @allure.story("获取奖品记录") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata',get_excelData(workbook,"电动车","PrizeLoglist")) def test_prizeLoglist(self,indata): url=f'{BMCConfig.host}/{indata["url"]}' method=indata["method"] headers=indata["headers"] data=indata["reqData"] expectdata=indata["expectData"] self.res=request_main(url=url,headers=headers,method=method,data=data) try: assert self.res["code"]==expectdata["code"] except Exception as e: raise e @allure.story("获取实物奖品信息") @allure.title("indata[testPoint]") @pytest.mark.parametrize("indata",get_excelData(workbook,"电动车","PrizeLoginfo")) def test_prizeLoginfo(self,indata): url=f"{BMCConfig.host}/{indata['url']}" method=indata["method"] mysql = MYSQL(*BaseConfig.test_mysql) id=mysql.ExecuQuery("select id from edl_public.user_prize where user_id='598137';")[-1]["id"] indata["reqData"]["id"]=id data=indata["reqData"] expectdata=indata["expectData"] headers=indata["headers"] if indata["testPoint"] == "获取实物奖品信息": self.res=request_main(url,headers,method,data) else: mysql=MYSQL(*BaseConfig.test_mysql) mysql.ExecuNonQuery("update edl_public.user_prize set receive_flag=1 where user_id='598137'and source='自动化奖品';") self.res = request_main(url, headers, method, data) try: assert self.res["code"]==expectdata["code"] except Exception as e: raise e @allure.story("用户收获地址列表") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata',get_excelData(workbook,"电动车","PrizeLogaddress")) def test_prizeLogaddress(self,indata): url=f'{BMCConfig.host}/{indata["url"]}' method=indata["method"] headers=indata["headers"] data=indata["reqData"] expectdata=indata["expectData"] self.res=request_main(url=url,headers=headers,method=method,data=data) try: assert self.res["code"]==expectdata["code"] except Exception as e: raise e @allure.story("获取默认地址") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata',get_excelData(workbook,"电动车","PrizeLogdefault")) def test_prizeLogdefault(self,indata): url=f'{BMCConfig.host}/{indata["url"]}' method=indata["method"] headers=indata["headers"] data=indata["reqData"] expectdata=indata["expectData"] self.res=request_main(url=url,headers=headers,method=method,data=data) try: assert self.res["code"]==expectdata["code"] except Exception as e: raise e @allure.story("【线上领奖】领取奖品") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata',get_excelData(workbook,"电动车","PrizeLogonline")) def test_prizeLogonline(self,indata): url=f'{BMCConfig.host}/{indata["url"]}' method=indata["method"] headers=indata["headers"] mysql = MYSQL(*BaseConfig.test_mysql) mysql.ExecuNonQuery("update edl_public.user_prize set receive_flag=0 where user_id='598137'and source='自动化奖品';") id = mysql.ExecuQuery("select id from edl_public.user_prize where user_id='598137';")[-1]["id"] indata["reqData"]["prizeId"]=id data=indata["reqData"] expectdata=indata["expectData"] self.res=request_main(url=url,headers=headers,method=method,data=data) try: assert self.res["code"]==expectdata["code"] except Exception as e: raise e @allure.story("我的礼券") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Coupon")) def test_coupon001(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("收藏文章") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Article")) def test_article(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] mysql = MYSQL(*BaseConfig.test_mysql) id = mysql.ExecuQuery("select id from edl_public.article where display_type='2' and source='自动化' and title='测试的内容';")[-1]["id"] indata["reqData"]["id"]=id data=indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("文章详情") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Articledetail")) def test_articledetail(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] mysql = MYSQL(*BaseConfig.test_mysql) id = mysql.ExecuQuery("select id from edl_public.article where display_type='2' and source='自动化' and title='测试的内容';")[-1]["id"] indata["reqData"]["id"] = id data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("点赞文章") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Articlelike")) def test_articlelike(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] mysql = MYSQL(*BaseConfig.test_mysql) id = mysql.ExecuQuery("select id from edl_public.article where display_type='2' and source='自动化' and title='测试的内容';")[-1]["id"] indata["reqData"]["id"] = id data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("获取版本列表") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Syslist")) def test_syslist(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("版本更新") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Sysupdate")) def test_sysupdate(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("服务协议") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Sysh")) def test_sysh5(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("常用登陆设备") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "SysloginDevices")) def test_sysloginDevices(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("常用登陆设备") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "Sysremove")) def test_sysremove(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] mysql=MYSQL(*BaseConfig.test_mysql) id=mysql.ExecuQuery("select id from edl_public.user_login_device where user_id=598137;")[-1]["id"] indata["reqData"]["deviceId"]=id data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("检查驾驶证补领状态") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplacementDrvcheck")) def test_replacementDrvcheck(self, indata): url = f'{BMCConfig.pvthost}{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("提交驾驶证补领信息") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplacementDrvapply")) def test_replacementDrvapply(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @pytest.fixture(scope="function") def replacementDrvapply(self): url = f'{BMCConfig.pvthost}/replacement/drv/apply' method='post' headers=None data={"address":"天津市天津市河西区zcvhh","attachments":{"idCardFrontImgUrl":"/group1/M00/00/16/CsXsyWCk4dKAAyS6AAN5Z55ejPg60.jpeg","idCardRearImgUrl":"/group1/M00/00/16/CsXsyWCk4dKAKziUAAH8o1m8Ch022.jpeg","inchPhotoImgUrl":"/group1/M00/00/16/CsXswmCk4dKAI2phAAPHNVCiG_Q79.jpeg"},"receiver":"常回家看看","receiverPhone":"13588669880"} res = request_main(url=url, headers=headers, method=method, data=data) return res["data"]["orderId"] @allure.story("查询订单支付状态") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplacementDrvstatus")) def test_replacementDrvstatus(self, indata,replacementDrvapply): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] indata["reqData"]["orderId"]=replacementDrvapply data=indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("获取通行证类型列表") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehicletypes")) def test_deliveryvehicletypes(self, indata): url = f'{BMCConfig.host}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("获取“通行证类型”的状态") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehiclepasscardTypeState")) def test_deliveryvehiclepasscardtypestate(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("获取须知信息") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehicledetail")) def test_deliveryVehicledetail(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("添加或编辑联系人") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehicleaddOrEditContact")) def test_deliveryvehicleaddOreditcontact(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("验证车辆是否可添加") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehiclecheckVehicle")) def test_deliveryvehiclecheckvehicle(self, indata): url = f'{BMCConfig.pvthost}{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("获取通行证申请书") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "DeliveryVehiclesubmitAddition")) def test_deliveryvehiclesubmitaddition(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("检查用户是否有机动车") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplaceVehiclecheck")) def test_replaceVehiclecheck(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("检查行驶证补领状态") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplaceVehiclelicensecheck")) def test_replacevehiclelicensecheck(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("车辆选择") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplaceVehiclelist")) def test_replacevehiclelist(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("提交补领行驶证信息") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplaceVehicleapply")) def test_replacevehicleapply(self, indata): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] data = indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e @allure.story("查询订单支付状态") @allure.title("{indata[testPoint]}") @pytest.mark.parametrize('indata', get_excelData(workbook, "电动车", "ReplaceVehiclestatus")) def test_replacevehiclestatus(self, indata,replacementDrvapply): url = f'{BMCConfig.pvthost}/{indata["url"]}' method = indata["method"] headers = indata["headers"] indata["reqData"]["orderId"]=replacementDrvapply data=indata["reqData"] expectdata = indata["expectData"] self.res = request_main(url=url, headers=headers, method=method, data=data) try: assert self.res["code"] == expectdata["code"] except Exception as e: raise e def teardown(self): allure.attach(f'{self.res}',"响应结果",allure.attachment_type.TEXT) mysql = MYSQL(*BaseConfig.test_mysql) mysql.ExecuNonQuery("delete from edl_private.passcard_contact where user_id=393038;") def teardown_class(self): mysql=MYSQL(*BaseConfig.test_mysql) mysql.ExecuNonQuery("delete from edl_public.user_prize where user_id='598137' and source='自动化奖品';") mysql.ExecuNonQuery("delete from edl_public.article where display_type='2' and source='自动化' and title='测试的内容';") mysql.ExecuNonQuery("delete from edl_public.user_login_device where user_id=598137 and device_model='HUAWEI nava';") if __name__ == '__main__': pytest.main(["-s","-v","test_elebicycle.py",'--alluredir', './bmc/report',"--clean-alluredir"]) # pytest.main(['-v', '-s', "test_elebicycle.py::TestElebicycle::test_replacevehiclestatus", '--alluredir', './bmc/report', "--clean-alluredir"]) os.system('allure serve ./bmc/report') # TestElebicycle().replacementDrvapply()