Commit affb6fa99e93874db4583f0a8ee5f626ea6ce479
1 parent
937ad048
更新
Showing
10 changed files
with
2900 additions
and
0 deletions
testCase/cardSystem/__init__.py
0 → 100644
testCase/cardSystem/test_addCard.py
0 → 100644
1 | +# -*- coding: utf-8 -*- | |
2 | + | |
3 | +# @Time : 2021/7/16 14:44 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_addCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | +""" | |
9 | +卡片入库测试 | |
10 | +""" | |
11 | + | |
12 | +import unittest | |
13 | +import time | |
14 | +import math | |
15 | +import commons.api.cardStorageIn as cSI | |
16 | +import commons.api.cardStock as cS | |
17 | +import commons.api.cardStorageOut as cSO | |
18 | +from commons.scripts.readConf import readConfig | |
19 | +from commons.api.doLogin import doLogin | |
20 | + | |
21 | + | |
22 | +class test_addCard(unittest.TestCase): | |
23 | + @classmethod | |
24 | + def setUpClass(cls): | |
25 | + # 获取登录信息和可用headers | |
26 | + rC = readConfig() | |
27 | + cls.cardHost = rC.returnOptionsItems("host", "cardHost") | |
28 | + cls.webHeaders,cls.clientHeaders,cls.userInfo = doLogin().loginUser() | |
29 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
30 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
31 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
32 | + # print("self.webHeaders", cls.webHeaders) | |
33 | + # print("self.clientHeaders", cls.clientHeaders) | |
34 | + # print("self.userInfo", cls.userInfo) | |
35 | + | |
36 | + def setUp(self) -> None: | |
37 | + time.sleep(2) | |
38 | + | |
39 | + def test_cardType(self): | |
40 | + """ | |
41 | + 卡类型校验 | |
42 | + :return: | |
43 | + """ | |
44 | + resCardType = cSI.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
45 | + preRes = [{"text":"-- 全部 --","value":""},{"text":"主卡","value":10},{"text":"副卡","value":20}] | |
46 | + assert resCardType.json()==preRes,"卡类型信息错误" | |
47 | + | |
48 | + def test_cardFaceCheck(self): | |
49 | + """ | |
50 | + 市场卡面信息校验 | |
51 | + :return: | |
52 | + """ | |
53 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
54 | + print(resCardFace.json()) | |
55 | + if self.userInfo["data"]["user"]["firmId"] == 8: | |
56 | + # 预期结果定义 | |
57 | + preRes = [{'text': '-- 请选择 --', 'value': ''}, {'text': '买方卡', 'value': 'buyer'}, {'text': 'VIP买方卡', 'value': 'buyer_vip'}, {'text': '卖方卡', 'value': 'seller'}, {'text': '司机卡', 'value': 'driver'}] | |
58 | + assert resCardFace.json()==preRes,"当 firmId = 8 时卡面信息错误" | |
59 | + else: | |
60 | + preRes = [{"text":"-- 无--","value":""}] | |
61 | + assert resCardFace.json() == preRes, "当 firmId != 8 时卡面信息错误" | |
62 | + | |
63 | + def test_doCardStorageIn(self): | |
64 | + """ | |
65 | + 卡片入库测试,新添加的卡片能正常的入库 | |
66 | + :return: | |
67 | + """ | |
68 | + # 获取卡面信息 | |
69 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
70 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
71 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
72 | + endCardNo = startCardNo + 1 | |
73 | + # 执行入库 | |
74 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
75 | + # print(resSavaCard.json()) | |
76 | + assert resSavaCard.json()["message"]=="OK","入库失败" | |
77 | + resQueryList = cSI.queryList(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
78 | + # 入库卡片号段校验 | |
79 | + assert resQueryList.json()["rows"][0]["cardNoRange"]==str(startCardNo)+"-"+str(endCardNo),"入库的卡片在入库列表不能被查询到" | |
80 | + # 入库数量校验 | |
81 | + assert resQueryList.json()["rows"][0]["amount"]==2,"入库数量错误" | |
82 | + # 入库角色校验 | |
83 | + assert resQueryList.json()["rows"][0]["creator"]==self.userInfo["data"]["user"]["realName"],"入库角色记录正确" | |
84 | + assert resQueryList.json()["rows"][0]["creatorId"] == self.userInfo["data"]["user"]["id"], "入库角色记录正确" | |
85 | + # resQueryList.json()["rows"][0]["cardFaceText"] | |
86 | + if self.userInfo["data"]["user"]["firmId"] == 8: | |
87 | + assert cardFace==resQueryList.json()["rows"][0]["cardFace"],"记录的卡面信息与实际卡面不一致" | |
88 | + else: | |
89 | + assert "cardFaceText" not in resQueryList.text,"记录的卡面信息与实际卡面不一致" | |
90 | + | |
91 | + def test_duplicateStorageIn(self): | |
92 | + """ | |
93 | + 测试卡片不能被重复入库 | |
94 | + :return: | |
95 | + """ | |
96 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
97 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
98 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
99 | + endCardNo = startCardNo+1 | |
100 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
101 | + assert resSavaCard.json()["message"]=="OK","入库失败" | |
102 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
103 | + assert resSavaCard.json()["message"]=="入库失败,包含重复卡号%s~%s"%(startCardNo,endCardNo),"卡片不能重复入库验证失败" | |
104 | + | |
105 | + def test_openCardStorageIn(self): | |
106 | + """ | |
107 | + 入库列表查询测试 | |
108 | + :return: | |
109 | + """ | |
110 | + # 全列表查询 | |
111 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
112 | + # print(resQueryList.json()["total"]) | |
113 | + assert resQueryList.json()["total"]>200,"页数小于10,查询结果可能存在错误" | |
114 | + | |
115 | + # 查询当天入库的入库记录,判断所得的查询记录的日期都是当天的为测试通过 | |
116 | + startDate = str(time.strftime("%Y-%m-%d 00:00:00", time.localtime())) | |
117 | + endDate = str(time.strftime("%Y-%m-%d 23:59:59", time.localtime())) | |
118 | + resQueryLista = cSI.queryList(cardHost=self.cardHost,webHeaders=self.webHeaders,startDate=startDate,endDate=endDate) | |
119 | + dateList=[] | |
120 | + pageNums = math.ceil(resQueryLista.json()["total"]/10) | |
121 | + for pageNum in range(pageNums): | |
122 | + resQueryLista = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders, startDate=startDate, | |
123 | + endDate=endDate,page=str(pageNum+1)) | |
124 | + dateList = dateList+[i["createTime"] for i in resQueryLista.json()["rows"]] | |
125 | + assert [] == [i for i in dateList if i<startDate or i>endDate],"查询结果错误,查询出非当天的入库信息" | |
126 | + | |
127 | + def test_addMasterCard(self): | |
128 | + """ | |
129 | + 添加主卡 | |
130 | + :return: | |
131 | + """ | |
132 | + resCardType = cSI.getCardType(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
133 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
134 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
135 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
136 | + endCardNo = startCardNo+1 | |
137 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
138 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
139 | + assert resQueryList.json()["rows"][0]["cardType"]==10,"卡片类型错误" | |
140 | + | |
141 | + | |
142 | + def test_addSlaveCard(self): | |
143 | + """ | |
144 | + 添加副卡 | |
145 | + :return: | |
146 | + """ | |
147 | + resCardType = cSI.getCardType(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
148 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
149 | + endCardNo = startCardNo+1 | |
150 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardType=20) | |
151 | + print(resSavaCard.json()) | |
152 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
153 | + assert resQueryList.json()["rows"][0]["cardType"] == 20, "卡片类型错误" | |
154 | + assert resQueryList.json()["rows"][0]["cardTypeText"] == "副卡", "卡片类型错误" | |
155 | + assert "cardFaceText" not in str(resQueryList.json()["rows"][0]),"副卡不应该存在卡面" | |
156 | + | |
157 | + | |
158 | + def test_delStorageInRecord(self): | |
159 | + """ | |
160 | + 正常删除卡片记录 | |
161 | + :return: | |
162 | + """ | |
163 | + # 新增加一条入库记录用于删除 | |
164 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
165 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
166 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
167 | + endCardNo = startCardNo + 1 | |
168 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
169 | + assert resSavaCard.json()["message"]=="OK","入库失败" | |
170 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
171 | + ida = resQueryList.json()['rows'][0]['id'] | |
172 | + resDel = cSI.delCard(cardHost=self.cardHost,webHeaders=self.webHeaders,ids=ida) | |
173 | + assert resDel.json()["message"]=="OK","删除失败,入库记录未被成功删除" | |
174 | + resQueryListB = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
175 | + idb = resQueryListB.json()['rows'][0]['id'] | |
176 | + print(ida,"----------------",idb) | |
177 | + assert ida!=idb,"删除功能异常,记录未被删除" | |
178 | + | |
179 | + def test_delStorageInRecordFail_delCard(self): | |
180 | + """ | |
181 | + 已作废的卡片不能被删除 | |
182 | + :return: | |
183 | + """ | |
184 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
185 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
186 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
187 | + endCardNo = startCardNo+1 | |
188 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
189 | + # 卡片作废 | |
190 | + cS.cardVoid(cardHost=self.cardHost,webHeaders=self.webHeaders,cardNo=startCardNo) | |
191 | + # 删除入库记录 | |
192 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
193 | + ida = resQueryList.json()['rows'][0]['id'] | |
194 | + resDel = cSI.delCard(cardHost=self.cardHost, webHeaders=self.webHeaders, ids=ida) | |
195 | + print(resDel.json()) | |
196 | + assert resDel.json()["message"]=="有部分卡片已出库或作废,删除失败","已作废的卡片不能被删除" | |
197 | + | |
198 | + def test_delStorageInRecordFail_cardOut(self): | |
199 | + """ | |
200 | + 存在出库卡片的入库记录,不能进行删除 | |
201 | + :return: | |
202 | + """ | |
203 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
204 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=3) | |
205 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
206 | + endCardNo = startCardNo + 1 | |
207 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
208 | + endCardNo=endCardNo, cardFace=cardFace) | |
209 | + # 卡片出库 | |
210 | + acc = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=str(startCardNo),applyUserName=self.applyUserName,applyUserCode=self.applyUserCode,applyUserId=self.applyUserId) | |
211 | + # print(acc.json()) | |
212 | + # 删除入库记录 | |
213 | + resQueryList = cSI.queryList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
214 | + ida = resQueryList.json()['rows'][0]['id'] | |
215 | + resDel = cSI.delCard(cardHost=self.cardHost, webHeaders=self.webHeaders, ids=ida) | |
216 | + # print(resDel.json()) | |
217 | + assert resDel.json()["message"] == "有部分卡片已出库或作废,删除失败", "已出库的卡片不能被删除" | |
218 | + | |
219 | + @classmethod | |
220 | + def tearDownClass(cls): | |
221 | + print("tearDown") | |
222 | + | |
223 | + def tearDown(self) -> None: | |
224 | + pass | |
225 | + | |
226 | +if __name__== "__main__": | |
227 | + unittest.main() | |
0 | 228 | \ No newline at end of file | ... | ... |
testCase/cardSystem/test_cardStorage.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/5/24 15:41 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_cardStorage.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + 卡片库存校验 | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import time | |
15 | +import math | |
16 | +import commons.api.cardStorageIn as cSI | |
17 | +import commons.api.cardStock as cS | |
18 | +import commons.api.cardStorageOut as cSO | |
19 | +from commons.scripts.readConf import readConfig | |
20 | +from commons.api.doLogin import doLogin | |
21 | + | |
22 | +class test_cardStorage(unittest.TestCase): | |
23 | + @classmethod | |
24 | + def setUpClass(cls): | |
25 | + # 获取登录信息和可用headers | |
26 | + rC = readConfig() | |
27 | + cls.cardHost = rC.returnOptionsItems("host", "cardHost") | |
28 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
29 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
30 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
31 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
32 | + | |
33 | + @classmethod | |
34 | + def tearDownClass(cls): | |
35 | + pass | |
36 | + | |
37 | + def setUp(self): | |
38 | + time.sleep(2) | |
39 | + # pass | |
40 | + | |
41 | + def tearDown(self): | |
42 | + pass | |
43 | + | |
44 | + def test_queryCardStorageList(self): | |
45 | + """ | |
46 | + 库存列表测试 | |
47 | + :return: | |
48 | + """ | |
49 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
50 | + print(resQuery.json()) | |
51 | + assert "200" == resQuery.json()["code"],"查询失败" | |
52 | + # 列表翻页 | |
53 | + pageNum = math.ceil(resQuery.json()["total"]/10) | |
54 | + print(pageNum) | |
55 | + for num in range(pageNum): | |
56 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders,page=num+1) | |
57 | + assert "200" == resQuery.json()["code"], "查询失败" | |
58 | + if num >5: | |
59 | + break | |
60 | + elif num>0: | |
61 | + sTime = resQuery.json()["rows"][0]["createTime"] | |
62 | + # print(str(num)+" sTime "+sTime) | |
63 | + # print(str(num) + " eTime " + eTime) | |
64 | + assert sTime <= eTime,"当前页第一列数据的创建时间应该小于上一页的最后一条数据的结束时间" | |
65 | + eTime = resQuery.json()["rows"][9]["createTime"] | |
66 | + | |
67 | + def test_cardVoid(self): | |
68 | + """ | |
69 | + 作废功能测试 | |
70 | + :return: | |
71 | + """ | |
72 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
73 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
74 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
75 | + endCardNo = startCardNo+1 | |
76 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
77 | + # 新入库卡片作废 | |
78 | + resVoid = cS.cardVoid(cardHost=self.cardHost,webHeaders=self.webHeaders,cardNo=startCardNo) | |
79 | + print(resVoid.json()) | |
80 | + assert resVoid.json()["code"]=="200","新入库卡片作废测试失败" | |
81 | + | |
82 | + # 新出库的卡片可以作废 | |
83 | + cardNos = str(endCardNo) | |
84 | + amount = 1 | |
85 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
86 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
87 | + applyUserCode=self.applyUserCode, amount=amount) | |
88 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
89 | + resVoid = cS.cardVoid(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=cardNos) | |
90 | + print(resVoid.json()) | |
91 | + assert resVoid.json()["code"] == "200", "新出库卡片作废测试失败" | |
92 | + | |
93 | + # 已开卡的卡片不能进行作废 | |
94 | + | |
95 | + def test_searchAllOptions(self): | |
96 | + """ | |
97 | + 查询条件测试 | |
98 | + :return: | |
99 | + """ | |
100 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
101 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace,faceNum=3) | |
102 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
103 | + endCardNo = startCardNo+6 | |
104 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
105 | + | |
106 | + # 新入库卡片作废 | |
107 | + resVoid = cS.cardVoid(cardHost=self.cardHost,webHeaders=self.webHeaders,cardNo=startCardNo) | |
108 | + print(resVoid.json()) | |
109 | + assert resVoid.json()["code"]=="200","新入库卡片作废测试失败" | |
110 | + # 卡片库存作废状态查询 | |
111 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders,cardNo=startCardNo) | |
112 | + assert "200" == resQuery.json()["code"], "查询失败" | |
113 | + assert "3" == str(resQuery.json()["rows"][0]["state"]),"状态查询成功" | |
114 | + # 卡片库存激活状态查询 | |
115 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=startCardNo+1, | |
116 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
117 | + applyUserCode=self.applyUserCode, amount=1) | |
118 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=startCardNo+1) | |
119 | + assert "200" == resQuery.json()["code"], "查询失败" | |
120 | + assert "2" == str(resQuery.json()["rows"][0]["state"]), "状态查询成功" | |
121 | + | |
122 | + # 查询主卡 | |
123 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, type=10) | |
124 | + assert "200" == resQuery.json()["code"], "查询失败" | |
125 | + assert 10 == list(set([i["type"] for i in resQuery.json()["rows"]]))[0], "查库存中的主卡失败" | |
126 | + # 查询副卡 | |
127 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, type=20) | |
128 | + assert "200" == resQuery.json()["code"], "查询失败" | |
129 | + assert 20 == list(set([i["type"] for i in resQuery.json()["rows"]]))[0], "查库存中的副卡失败" | |
130 | + | |
131 | + # 查询卡面 | |
132 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
133 | + if len(resCardFace.json())>1: | |
134 | + cardFaceList = [i["value"] for i in resCardFace.json()][1:] | |
135 | + print(cardFaceList) | |
136 | + for cardFaceItem in cardFaceList: | |
137 | + print("1----------------------") | |
138 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, | |
139 | + cardFace=cardFaceItem) | |
140 | + assert 1 == len(list(set([i["cardFace"] for i in resQuery.json()["rows"]]))), "失败" | |
141 | + assert cardFaceItem == list(set([i["cardFace"] for i in resQuery.json()["rows"]]))[0], "卡面查询校验失败" | |
142 | + else: | |
143 | + print("2----------------------") | |
144 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
145 | + assert "cardFace" not in resQuery.text, "卡面查询校验失败" | |
146 | + | |
147 | + # 卡号 | |
148 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=startCardNo) | |
149 | + # print(len(resQuery.json()["rows"])) | |
150 | + assert 1 == len(resQuery.json()["rows"]),"卡号查询失败" | |
151 | + assert str(startCardNo) == resQuery.json()["rows"][0]["cardNo"], "卡号查询失败" | |
152 | + | |
153 | + # 入库时间查询 | |
154 | + startDate = str(time.strftime("%Y-%m-%d 00:00:00", time.localtime())) | |
155 | + endDate = str(time.strftime("%Y-%m-%d 23:59:59", time.localtime())) | |
156 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders,startDate=startDate,endDate=endDate) | |
157 | + pageNums = math.ceil(resQuery.json()["total"]/10) | |
158 | + dateList = [] | |
159 | + for pageNum in range(pageNums): | |
160 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders,startDate=startDate,endDate=endDate,page=pageNum) | |
161 | + dateList = dateList+[i["createTime"] for i in resQuery.json()["rows"]] | |
162 | + assert [] == [i for i in dateList if i<startDate or i>endDate],"查询结果错误,查询出非当天的入库信息" | ... | ... |
testCase/cardSystem/test_changeCard.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/6/1 10:02 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_changeCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import time | |
15 | +import commons.api.cardStorageIn as cSI | |
16 | +import commons.api.returnCard as reC | |
17 | +import commons.api.cardStorageOut as cSO | |
18 | +import commons.api.openCard as oMC | |
19 | +import commons.api.cardStock as cS | |
20 | +import commons.api.changeCard as cC | |
21 | +from commons.scripts.readConf import readConfig | |
22 | +from commons.api.doLogin import doLogin | |
23 | + | |
24 | +class tset_changeCard(unittest.TestCase): | |
25 | + def setUp(self) -> None: | |
26 | + time.sleep(3) | |
27 | + | |
28 | + def tearDown(self) -> None: | |
29 | + pass | |
30 | + | |
31 | + @classmethod | |
32 | + def setUpClass(cls) -> None: | |
33 | + # 配置信息获取 | |
34 | + readC = readConfig() | |
35 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
36 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
37 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
38 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
39 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
40 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
41 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
42 | + # 登录信息获取 | |
43 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
44 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
45 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
46 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
47 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
48 | + | |
49 | + @classmethod | |
50 | + def tearDownClass(cls) -> None: | |
51 | + pass | |
52 | + | |
53 | + def test_getSimpleInfo(self): | |
54 | + """用户信息获取""" | |
55 | + # 未入库的卡片进行客户信息获取 | |
56 | + notInCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
57 | + res = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=notInCardNo) | |
58 | + print(res.json()) | |
59 | + assert "10001" == res.json()["code"], "未入库的卡片进行信息获取,测试不通过" | |
60 | + assert "卡账户不存在" == res.json()["message"], "未入库的卡片进行信息获取,测试不通过" | |
61 | + | |
62 | + # 入库未开卡的卡片进行信息获取 | |
63 | + faceNum = 1 | |
64 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
65 | + endCardNo = startCardNo + 1 | |
66 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
67 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
68 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
69 | + endCardNo=endCardNo, cardFace=cardFace) | |
70 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
71 | + res = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo) | |
72 | + print(res.json()) | |
73 | + assert "10001" == res.json()["code"], "未出库的卡片进行信息获取,测试不通过" | |
74 | + assert "卡账户不存在" == res.json()["message"], "未出库的卡片进行信息获取,测试不通过" | |
75 | + | |
76 | + # 出库未开卡的卡片进行信息获取 | |
77 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
78 | + print(cardNos) | |
79 | + amount = len([i for i in range(startCardNo, endCardNo)]) | |
80 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
81 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
82 | + applyUserCode=self.applyUserCode, amount=amount) | |
83 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
84 | + res = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo) | |
85 | + print(res.json()) | |
86 | + assert "10001" == res.json()["code"], "出库未开卡的卡片进行信息获取,测试不通过" | |
87 | + assert "卡账户不存在" == res.json()["message"], "出库未开卡的卡片进行信息获取,测试不通过" | |
88 | + | |
89 | + # 正常的主卡获取客户信息 | |
90 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
91 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
92 | + print("resFirstOpen", resFirstOpen.json()) | |
93 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
94 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
95 | + res = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo) | |
96 | + print(res.json()) | |
97 | + assert "200" == res.json()["code"], "正常获取客户信息获取失败" | |
98 | + assert "OK" == res.json()["message"], "正常获取客户信息获取失败" | |
99 | + | |
100 | + # 使用副卡进行信息获取 | |
101 | + # 副卡入库-出库-开卡 | |
102 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
103 | + endSlaveCardNo = startSlaveCardNo + 1 | |
104 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
105 | + endCardNo=endSlaveCardNo, cardType=20) | |
106 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
107 | + cardNo=startSlaveCardNo, | |
108 | + cardType=20) | |
109 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
110 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
111 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
112 | + amount = len([i for i in range(startSlaveCardNo, endSlaveCardNo + 1)]) | |
113 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
114 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
115 | + applyUserCode=self.applyUserCode, amount=amount) | |
116 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
117 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
118 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
119 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
120 | + parentLoginPwd=self.loginPwd) | |
121 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
122 | + # 以上为测试准备 | |
123 | + res = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startSlaveCardNo) | |
124 | + print(res.json()) | |
125 | + assert "200" == res.json()["code"], "正常获取客户信息获取失败" | |
126 | + assert "OK" == res.json()["message"], "正常获取客户信息获取失败" | |
127 | + | |
128 | + # 已挂失的卡片进行信息获取 | |
129 | + | |
130 | + # 已锁定的卡片进行信息获取 | |
131 | + | |
132 | + # 已冻结的卡片进行信息获取 | |
133 | + | |
134 | + | |
135 | + # 副卡退卡 | |
136 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
137 | + # 主卡退卡 | |
138 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
139 | + | |
140 | + | |
141 | + def test_getChangeCardFee(self): | |
142 | + """换卡工本费信息获取""" | |
143 | + res = cC.getChangeCardFee(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders) | |
144 | + print(res.json()) | |
145 | + assert "200" == res.json()["code"], "正常获取客户信息获取失败" | |
146 | + assert "OK" == res.json()["message"], "正常获取客户信息获取失败" | |
147 | + | |
148 | + def test_checkCorrectCard(self): | |
149 | + """新卡卡状态校验""" | |
150 | + # 主卡入库-出库-开卡 | |
151 | + faceNum = 1 | |
152 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
153 | + endCardNo = startCardNo + 1 | |
154 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
155 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
156 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
157 | + endCardNo=endCardNo, cardFace=cardFace) | |
158 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
159 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
160 | + print(cardNos) | |
161 | + amount = len([i for i in range(startCardNo, endCardNo)]) | |
162 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
163 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
164 | + applyUserCode=self.applyUserCode, amount=amount) | |
165 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
166 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
167 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
168 | + print("resFirstOpen", resFirstOpen.json()) | |
169 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
170 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
171 | + # 副卡入库-出库-开卡 | |
172 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
173 | + endSlaveCardNo = startSlaveCardNo + 1 | |
174 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
175 | + endCardNo=endSlaveCardNo, cardType=20) | |
176 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
177 | + cardNo=startSlaveCardNo, | |
178 | + cardType=20) | |
179 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
180 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
181 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
182 | + amount = len([i for i in range(startSlaveCardNo, endSlaveCardNo + 1)]) | |
183 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
184 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
185 | + applyUserCode=self.applyUserCode, amount=amount) | |
186 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
187 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
188 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
189 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
190 | + parentLoginPwd=self.loginPwd) | |
191 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
192 | + # 以上为测试数据准备 | |
193 | + | |
194 | + # 主卡校验 | |
195 | + customerId = cC.getSimpleInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders, | |
196 | + cardNo=startCardNo).json()["data"]["accountInfo"]["customerId"] | |
197 | + print("customerId",customerId) | |
198 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=endCardNo,customerId=customerId) | |
199 | + print(resCheckCard.json()) | |
200 | + assert "200" == resCheckCard.json()["code"], "正常新主卡校验测试不通过" | |
201 | + assert "OK" == resCheckCard.json()["message"], "正常新主卡校验测试不通过" | |
202 | + assert str(endCardNo) in resCheckCard.text, "正常新主卡校验测试不通过" | |
203 | + | |
204 | + # 副卡校验 | |
205 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=endSlaveCardNo,cardType=20,customerId=customerId) | |
206 | + print(resCheckCard.json()) | |
207 | + assert "200" == resCheckCard.json()["code"], "正常新副卡校验测试不通过" | |
208 | + assert "OK" == resCheckCard.json()["message"], "正常新副卡校验测试不通过" | |
209 | + assert str(endSlaveCardNo) in resCheckCard.text, "正常新副卡校验测试不通过" | |
210 | + | |
211 | + # 副卡退卡 | |
212 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
213 | + # 主卡退卡 | |
214 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
215 | + | |
216 | + def test_checkErrorCard(self): | |
217 | + """使用错误状态的卡片进行新卡校验""" | |
218 | + # 主卡入库-出库-开卡 | |
219 | + faceNum = 1 | |
220 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
221 | + endCardNo = startCardNo + 2 | |
222 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
223 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
224 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
225 | + endCardNo=endCardNo, cardFace=cardFace) | |
226 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
227 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
228 | + print(cardNos) | |
229 | + amount = 2 | |
230 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
231 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
232 | + applyUserCode=self.applyUserCode, amount=amount) | |
233 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
234 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
235 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
236 | + print("resFirstOpen", resFirstOpen.json()) | |
237 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
238 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
239 | + # 副卡入库-出库-开卡 | |
240 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
241 | + endSlaveCardNo = startSlaveCardNo + 2 | |
242 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
243 | + endCardNo=endSlaveCardNo, cardType=20) | |
244 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
245 | + cardNo=startSlaveCardNo, | |
246 | + cardType=20) | |
247 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
248 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
249 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
250 | + amount = 2 | |
251 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
252 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
253 | + applyUserCode=self.applyUserCode, amount=amount) | |
254 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
255 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
256 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
257 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
258 | + parentLoginPwd=self.loginPwd) | |
259 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
260 | + # 开卡结束 | |
261 | + | |
262 | + customerId = cC.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
263 | + cardNo=startCardNo).json()["data"]["accountInfo"]["customerId"] | |
264 | + print("customerId", customerId) | |
265 | + # 以上为测试数据准备 | |
266 | + | |
267 | + """开始测试""" | |
268 | + # 使用未出库的卡片进行校验 | |
269 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=999999999999, | |
270 | + customerId=customerId) | |
271 | + print("resCheckCard",resCheckCard.json()) | |
272 | + assert "10000" == resCheckCard.json()["code"], "未入库卡片校验测试不通过" | |
273 | + assert "该卡未入库!" == resCheckCard.json()["message"], "未入库卡片校验测试不通过" | |
274 | + | |
275 | + # 使用已作废的卡片进行校验 | |
276 | + voidCardNo = startCardNo+1 | |
277 | + resVoid = cS.cardVoid(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=voidCardNo) | |
278 | + assert resVoid.json()["code"] == "200", "新入库卡片作废测试失败" | |
279 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=voidCardNo, | |
280 | + customerId=customerId) | |
281 | + print("resCheckCard",resCheckCard.json()) | |
282 | + assert "20000" == resCheckCard.json()["code"], "[作废]卡片校验测试不通过" | |
283 | + assert "该卡状态为[作废],不能开卡!" == resCheckCard.json()["message"], "[作废]卡片校验测试不通过" | |
284 | + | |
285 | + # 使用不匹配的卡面进行校验 -- 寿光市场 | |
286 | + if self.firmId == 8: | |
287 | + pass | |
288 | + | |
289 | + # 使用已开卡的主卡进行校验 | |
290 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
291 | + cCNum=self.cCNum, cardNo=endCardNo, applyUserName=self.applyUserName) | |
292 | + print("resFirstOpen", resFirstOpen.json()) | |
293 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
294 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
295 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endCardNo, | |
296 | + customerId=customerId) | |
297 | + # print("resCheckCard",resCheckCard.json()) | |
298 | + assert "20000" == resCheckCard.json()["code"], "正常新主卡校验测试不通过" | |
299 | + assert "该卡状态为[在用],不能开卡!" == resCheckCard.json()["message"], "正常新主卡校验测试不通过" | |
300 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endCardNo) #退卡 | |
301 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endCardNo, | |
302 | + customerId=customerId) | |
303 | + | |
304 | + # 使用已退还的卡片可以进行换卡操作校验成功 | |
305 | + # print("resCheckCard",resCheckCard.json()) | |
306 | + assert "200" == resCheckCard.json()["code"], "已退还的主卡校验测试不通过" | |
307 | + assert "OK" == resCheckCard.json()["message"], "已退还的主卡校验测试不通过" | |
308 | + assert str(endCardNo) in resCheckCard.text, "已退还的主卡校验测试不通过" | |
309 | + | |
310 | + # 主卡换卡时使用副卡校验 | |
311 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardType=10,cardNo=endSlaveCardNo, | |
312 | + customerId=customerId) | |
313 | + print("resCheckCard",resCheckCard.json()) | |
314 | + assert "20000" == resCheckCard.json()["code"], "使用副卡对主卡进行换卡校验测试不通过" | |
315 | + assert "请使用主卡办理当前业务!" == resCheckCard.json()["message"], "使用副卡对主卡进行换卡校验测试不通过" | |
316 | + | |
317 | + # 副卡换卡时使用主卡进行校验 | |
318 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardType=20,cardNo=endCardNo, | |
319 | + customerId=customerId) | |
320 | + print("resCheckCard",resCheckCard.json()) | |
321 | + assert "20000" == resCheckCard.json()["code"], "副卡换卡时使用主卡进行校验测试不通过" | |
322 | + assert "请使用副卡办理当前业务!" == resCheckCard.json()["message"], "副卡换卡时使用主卡进行校验测试不通过" | |
323 | + | |
324 | + # 使用未出库的副卡进行校验 | |
325 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
326 | + cardNo=999999999999, cardType=20, customerId=customerId) | |
327 | + print(resCheckCard.json()) | |
328 | + assert "10000" == resCheckCard.json()["code"], "未入库卡片校验测试不通过" | |
329 | + assert "该卡未入库!" == resCheckCard.json()["message"], "未入库卡片校验测试不通过" | |
330 | + | |
331 | + # 使用已开卡的副卡进行校验 | |
332 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
333 | + cardNo=startCardNo, slaveCardNo=endSlaveCardNo, | |
334 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
335 | + parentLoginPwd=self.loginPwd) | |
336 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
337 | + resCheckCard = cC.checkCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
338 | + cardNo=endSlaveCardNo, cardType=20, customerId=customerId) | |
339 | + print(resCheckCard.json()) | |
340 | + assert "20000" == resCheckCard.json()["code"], "已开卡的卡片进行状态校验测试不通过" | |
341 | + assert "该卡状态为[在用],不能开卡!" == resCheckCard.json()["message"], "已开卡的卡片进行状态校验测试不通过" | |
342 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endSlaveCardNo) | |
343 | + | |
344 | + """测试完成""" | |
345 | + # 副卡退卡 | |
346 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
347 | + # 主卡退卡 | |
348 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
349 | + | |
350 | + def test_changeCard(self): | |
351 | + """换卡正向流程测试""" | |
352 | + # 主卡入库-出库-开卡 | |
353 | + faceNum = 1 | |
354 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
355 | + endCardNo = startCardNo + 2 | |
356 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
357 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
358 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
359 | + endCardNo=endCardNo, cardFace=cardFace) | |
360 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
361 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
362 | + amount = 2 | |
363 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
364 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
365 | + applyUserCode=self.applyUserCode, amount=amount) | |
366 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
367 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
368 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
369 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
370 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
371 | + # 副卡入库-出库-开卡 | |
372 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
373 | + endSlaveCardNo = startSlaveCardNo + 2 | |
374 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
375 | + endCardNo=endSlaveCardNo, cardType=20) | |
376 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
377 | + cardNo=startSlaveCardNo, | |
378 | + cardType=20) | |
379 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
380 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
381 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
382 | + amount = 2 | |
383 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
384 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
385 | + applyUserCode=self.applyUserCode, amount=amount) | |
386 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
387 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
388 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
389 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
390 | + parentLoginPwd=self.loginPwd) | |
391 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
392 | + # 开卡结束 --- > 获取卡账户信息,换卡工本费 | |
393 | + serviceFee = cC.getChangeCardFee(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders).json()["data"] | |
394 | + # 以上为测试数据准备 | |
395 | + """开始测试""" | |
396 | + | |
397 | + # 主卡换卡正常换卡测试 ---> 换卡成功后原卡片变为激活状态 | |
398 | + resSimpleInfo = cC.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
399 | + cardNo=startCardNo) | |
400 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
401 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo, | |
402 | + newCardNo=endCardNo,serviceFee=serviceFee,loginPwd=self.loginPwd,accountId=accountId,customerId=customerId) | |
403 | + assert "200" == resChangeCard.json()["code"],"主卡换卡测试不通过" | |
404 | + assert "OK" == resChangeCard.json()["message"],"主卡换卡测试不通过" | |
405 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders,cardNo=startCardNo) | |
406 | + assert "200" == resQuery.json()["code"], "查询失败" | |
407 | + assert "2" == str(resQuery.json()["rows"][0]["state"]),"状态查询成功" | |
408 | + | |
409 | + # 副卡换卡正常换卡测试,换卡成功后原卡片变为激活状态 | |
410 | + resSimpleInfo = cC.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
411 | + cardNo=startSlaveCardNo) | |
412 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
413 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
414 | + cardNo=startSlaveCardNo, | |
415 | + newCardNo=endSlaveCardNo, serviceFee=serviceFee, loginPwd=self.loginPwd, | |
416 | + accountId=accountId, customerId=customerId) | |
417 | + assert "200" == resChangeCard.json()["code"], "主卡换卡测试不通过" | |
418 | + assert "OK" == resChangeCard.json()["message"], "主卡换卡测试不通过" | |
419 | + resQuery = cS.queryCardStorageList(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=startSlaveCardNo) | |
420 | + assert "200" == resQuery.json()["code"], "查询失败" | |
421 | + assert "2" == str(resQuery.json()["rows"][0]["state"]), "状态查询成功" | |
422 | + | |
423 | + | |
424 | + """测试完成""" | |
425 | + # 副卡退卡 | |
426 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endSlaveCardNo) | |
427 | + # 主卡退卡 | |
428 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endCardNo) | |
429 | + | |
430 | + def test_changeCardError(self): | |
431 | + """换卡正向流程测试""" | |
432 | + # 主卡入库-出库-开卡 | |
433 | + faceNum = 1 | |
434 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
435 | + endCardNo = startCardNo + 2 | |
436 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
437 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
438 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
439 | + endCardNo=endCardNo, cardFace=cardFace) | |
440 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
441 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
442 | + amount = 2 | |
443 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
444 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
445 | + applyUserCode=self.applyUserCode, amount=amount) | |
446 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
447 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
448 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
449 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
450 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
451 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
452 | + cCNum=self.cCNum, cardNo=endCardNo, applyUserName=self.applyUserName) | |
453 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
454 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
455 | + # 副卡入库-出库-开卡 | |
456 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
457 | + endSlaveCardNo = startSlaveCardNo + 2 | |
458 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
459 | + endCardNo=endSlaveCardNo, cardType=20) | |
460 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
461 | + cardNo=startSlaveCardNo, | |
462 | + cardType=20) | |
463 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
464 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
465 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
466 | + amount = 2 | |
467 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
468 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
469 | + applyUserCode=self.applyUserCode, amount=amount) | |
470 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
471 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
472 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
473 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
474 | + parentLoginPwd=self.loginPwd) | |
475 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
476 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
477 | + cardNo=startCardNo, slaveCardNo=endSlaveCardNo, | |
478 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
479 | + parentLoginPwd=self.loginPwd) | |
480 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
481 | + # 开卡结束 --- > 获取卡账户信息,换卡工本费 | |
482 | + serviceFee = cC.getChangeCardFee(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders).json()["data"] | |
483 | + resSimpleInfo = cC.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
484 | + cardNo=startCardNo) | |
485 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
486 | + resSimpleInfo = cC.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
487 | + cardNo=startSlaveCardNo) | |
488 | + customerIdSlaveCard,accountIdSlaveCard = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
489 | + # 以上为测试数据准备 | |
490 | + """开始测试""" | |
491 | + | |
492 | + # 使用未入库的主卡卡片和副卡进行换卡 | |
493 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo, | |
494 | + newCardNo=999999999999,serviceFee=serviceFee,loginPwd=self.loginPwd,accountId=accountId,customerId=customerId) | |
495 | + assert "10000" == resChangeCard.json()["code"],"主卡换卡测试不通过" | |
496 | + assert "该卡未入库!" == resChangeCard.json()["message"],"主卡换卡测试不通过" | |
497 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startSlaveCardNo, | |
498 | + newCardNo=999999999999,serviceFee=serviceFee,loginPwd=self.loginPwd, | |
499 | + accountId=accountIdSlaveCard,customerId=customerIdSlaveCard) | |
500 | + assert "10000" == resChangeCard.json()["code"],"副卡换卡测试不通过" | |
501 | + assert "该卡未入库!" == resChangeCard.json()["message"],"副卡换卡测试不通过" | |
502 | + | |
503 | + # 使用未出库的主卡卡片和副卡进行换卡 | |
504 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startCardNo, | |
505 | + newCardNo=startCardNo+1,serviceFee=serviceFee,loginPwd=self.loginPwd,accountId=accountId,customerId=customerId) | |
506 | + print(resChangeCard.json()) | |
507 | + assert "20000" == resChangeCard.json()["code"],"使用未出库的主卡换卡测试不通过" | |
508 | + assert "该卡状态为[未激活],不能开卡!" == resChangeCard.json()["message"],"使用未出库的主卡换卡测试不通过" | |
509 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cardNo=startSlaveCardNo, | |
510 | + newCardNo=startSlaveCardNo+1,serviceFee=serviceFee,loginPwd=self.loginPwd, | |
511 | + accountId=accountIdSlaveCard,customerId=customerIdSlaveCard) | |
512 | + print(resChangeCard.json()) | |
513 | + assert "20000" == resChangeCard.json()["code"],"使用未出库的副卡换卡测试不通过" | |
514 | + assert "该卡状态为[未激活],不能开卡!" == resChangeCard.json()["message"],"使用未出库的副卡换卡测试不通过" | |
515 | + | |
516 | + # 使用已开卡的主卡卡片和副卡进行换卡 | |
517 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
518 | + cardNo=startCardNo, | |
519 | + newCardNo=endCardNo, serviceFee=serviceFee, loginPwd=self.loginPwd, | |
520 | + accountId=accountId, customerId=customerId) | |
521 | + print(resChangeCard.json()) | |
522 | + assert "20000" == resChangeCard.json()["code"], "主卡换卡测试不通过" | |
523 | + assert "该卡状态为[在用],不能开卡!" == resChangeCard.json()["message"], " 使用已开卡的主卡换卡测试不通过" | |
524 | + resChangeCard = cC.changeCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
525 | + cardNo=startSlaveCardNo, | |
526 | + newCardNo=endSlaveCardNo, serviceFee=serviceFee, loginPwd=self.loginPwd, | |
527 | + accountId=accountIdSlaveCard, customerId=customerIdSlaveCard) | |
528 | + print(resChangeCard.json()) | |
529 | + assert "20000" == resChangeCard.json()["code"], "副卡换卡测试不通过" | |
530 | + assert "该卡状态为[在用],不能开卡!" == resChangeCard.json()["message"], " 使用已开卡的副卡换卡测试不通过" | |
531 | + | |
532 | + """测试完成""" | |
533 | + # 副卡退卡 | |
534 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endSlaveCardNo) | |
535 | + # 副卡退卡 | |
536 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
537 | + # 主卡退卡 | |
538 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=endCardNo) | |
539 | + # 主卡退卡 | |
540 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
541 | + | ... | ... |
testCase/cardSystem/test_lossCard.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/6/17 15:56 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_lossCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import time | |
15 | +import commons.api.cardStorageIn as cardStorageIn | |
16 | +import commons.api.returnCard as returnCard | |
17 | +import commons.api.cardStorageOut as cardStorageOut | |
18 | +import commons.api.openCard as openCard | |
19 | +import commons.api.cardLostAndUnLost as cardLostAndUnLost | |
20 | +from commons.scripts.readConf import readConfig | |
21 | +from commons.api.doLogin import doLogin | |
22 | + | |
23 | +class test_lossCardAndUn(unittest.TestCase): | |
24 | + """卡片挂失,解挂测试""" | |
25 | + def setUp(self) -> None: | |
26 | + # 主卡入库-出库-开卡 | |
27 | + faceNum = 1 | |
28 | + self.startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
29 | + self.endCardNo = self.startCardNo + 2 | |
30 | + resCardFace = cardStorageIn.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
31 | + cardFace = cardStorageIn.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
32 | + resSavaCard = cardStorageIn.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, | |
33 | + startCardNo=self.startCardNo, | |
34 | + endCardNo=self.endCardNo, cardFace=cardFace) | |
35 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
36 | + cardNos = str(self.startCardNo) + "," + str(self.endCardNo) | |
37 | + print(cardNos) | |
38 | + amount = 2 | |
39 | + outCardRes = cardStorageOut.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
40 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
41 | + applyUserCode=self.applyUserCode, amount=amount) | |
42 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
43 | + resFirstOpen = openCard.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
44 | + cCNum=self.cCNum, cardNo=self.startCardNo, | |
45 | + applyUserName=self.applyUserName) | |
46 | + print("resFirstOpen", resFirstOpen.json()) | |
47 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
48 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
49 | + # 副卡入库-出库-开卡 | |
50 | + self.startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
51 | + self.endSlaveCardNo = self.startSlaveCardNo + 2 | |
52 | + resSavaCard = cardStorageIn.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, | |
53 | + startCardNo=self.startSlaveCardNo, | |
54 | + endCardNo=self.endSlaveCardNo, cardType=20) | |
55 | + res = openCard.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
56 | + cardNo=self.startSlaveCardNo, | |
57 | + cardType=20) | |
58 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
59 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
60 | + slaveCardNos = str(self.startSlaveCardNo) + "," + str(self.endSlaveCardNo) | |
61 | + amount = 2 | |
62 | + outCardRes = cardStorageOut.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
63 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
64 | + applyUserCode=self.applyUserCode, amount=amount) | |
65 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
66 | + resOpenSlaveCard = openCard.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
67 | + cardNo=self.startCardNo, slaveCardNo=self.startSlaveCardNo, | |
68 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
69 | + parentLoginPwd=self.loginPwd) | |
70 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
71 | + # 开卡结束-获取卡片客户信息 | |
72 | + | |
73 | + def tearDown(self) -> None: | |
74 | + # 副卡退卡,主卡退卡 | |
75 | + returnCard.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
76 | + cardNo=self.startSlaveCardNo) | |
77 | + returnCard.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=self.startCardNo) | |
78 | + | |
79 | + @classmethod | |
80 | + def setUpClass(cls) -> None: | |
81 | + # 配置信息获取 | |
82 | + readC = readConfig() | |
83 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
84 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
85 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
86 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
87 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
88 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
89 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
90 | + # 登录信息获取 | |
91 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
92 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
93 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
94 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
95 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
96 | + | |
97 | + @classmethod | |
98 | + def tearDownClass(cls) -> None: | |
99 | + pass | |
100 | + | |
101 | + def test_getAccountInfo(self): | |
102 | + """ | |
103 | + 获取卡片信息测试 | |
104 | + :return: | |
105 | + """ | |
106 | + # 使用未入库的卡片进行获取 | |
107 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost,clientHeaders =self.clientHeaders,cardNo=999999999999) | |
108 | + print(resGet.json()) | |
109 | + assert "10001" == resGet.json()["code"],"未入库卡片信息获取测试不通过" | |
110 | + assert "卡账户不存在" == resGet.json()["message"],"未入库卡片信息获取测试不通过" | |
111 | + | |
112 | + # 使用入库未出库的卡片进行信息获取 | |
113 | + # 卡片入库 | |
114 | + faceNum = 1 | |
115 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
116 | + endCardNo = startCardNo + 2 | |
117 | + | |
118 | + resCardFace = cardStorageIn.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
119 | + cardFace = cardStorageIn.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
120 | + resSavaCard = cardStorageIn.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
121 | + endCardNo=endCardNo, cardFace=cardFace) | |
122 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
123 | + print(resGet.json()) | |
124 | + assert "10001" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
125 | + assert "卡账户不存在" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
126 | + | |
127 | + # 使用出库未开卡的卡片进行信息获取 | |
128 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
129 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
130 | + outCardRes = cardStorageOut.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
131 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
132 | + applyUserCode=self.applyUserCode, amount=amount) | |
133 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
134 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
135 | + print(resGet.json()) | |
136 | + assert "10001" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
137 | + assert "卡账户不存在" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
138 | + | |
139 | + # 使用已开卡的卡片可以正确的获取到客户信息 | |
140 | + resFirstOpen = openCard.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
141 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
142 | + assert "200" == resFirstOpen.json()["code"], "开卡失败" | |
143 | + assert "data" in resFirstOpen.json(), "开卡失败" | |
144 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
145 | + # print("resGet.json()",resGet.json()) | |
146 | + assert "200" == resGet.json()["code"], "已开卡卡片信息获取测试不通过" | |
147 | + assert "data" in resGet.json(), "已开卡卡片信息获取测试不通过" | |
148 | + | |
149 | + # 使用已挂失的卡片信息进行卡片信息获取 | |
150 | + accountId,customerId = resGet.json()["data"]["accountId"],resGet.json()["data"]["customerId"] | |
151 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=str(startCardNo), | |
152 | + accountId=accountId, customerId=customerId, loginPwd=self.loginPwd) | |
153 | + # print("resLossCard.json()",resLossCard.json()) | |
154 | + assert "200" == resLossCard.json()["code"],"已挂失的卡片获取卡片信息测试不通过" | |
155 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
156 | + # print("resGet.json()", resGet.json()) | |
157 | + assert "2000" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
158 | + assert "该卡为挂失状态,不能进行此操作" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
159 | + # 解挂 | |
160 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=str(startCardNo), | |
161 | + accountId=accountId, customerId=customerId, loginPwd=self.loginPwd) | |
162 | + # print("resUnLoss.json()",resUnLoss.json()) | |
163 | + | |
164 | + # 账号冻结状态 | |
165 | + | |
166 | + # 卡片锁定状态 | |
167 | + | |
168 | + # 使用已退还的卡片进行卡片信息获取 | |
169 | + returnCard.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
170 | + resGet = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
171 | + # print("resGet.json()", resGet.json()) | |
172 | + assert "2000" == resGet.json()["code"], "已退还的卡片信息获取测试不通过" | |
173 | + assert "该卡为退还状态,不能进行此操作" == resGet.json()["message"], "已退还的卡片信息获取测试不通过" | |
174 | + | |
175 | + | |
176 | + def test_lossCardAndUnLost(self): | |
177 | + """卡片挂失""" | |
178 | + # 获取卡片客户信息 | |
179 | + accountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=self.startCardNo) | |
180 | + accountId,customerId = accountInfo.json()["data"]["accountId"],accountInfo.json()["data"]["customerId"] | |
181 | + slaveCardAccountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=self.startSlaveCardNo) | |
182 | + print("slaveCardAccountInfo ",slaveCardAccountInfo.json()) | |
183 | + customerIdSlaveCard, accountIdSlaveCard = slaveCardAccountInfo.json()["data"]["customerId"], slaveCardAccountInfo.json()["data"]["accountId"] | |
184 | + # 以上为测试数据准备 | |
185 | + | |
186 | + """开始测试""" | |
187 | + # 正常主卡卡片挂失解挂 | |
188 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
189 | + cardNo=str(self.startCardNo),accountId=accountId, customerId=customerId, | |
190 | + loginPwd=self.loginPwd) | |
191 | + assert "200" == resLossCard.json()["code"],"卡片挂失失败" | |
192 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
193 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
194 | + loginPwd=self.loginPwd) | |
195 | + assert "200" == resUnLoss.json()["code"],"卡片解挂失败" | |
196 | + | |
197 | + | |
198 | + # 正常副卡卡片挂失解挂 | |
199 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
200 | + cardNo=str(self.startSlaveCardNo),accountId=accountIdSlaveCard, | |
201 | + customerId=customerIdSlaveCard, | |
202 | + loginPwd=self.loginPwd) | |
203 | + assert "200" == resLossCard.json()["code"],"副卡挂失失败" | |
204 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
205 | + cardNo=str(self.startSlaveCardNo), accountId=accountIdSlaveCard, | |
206 | + customerId=customerIdSlaveCard, | |
207 | + loginPwd=self.loginPwd) | |
208 | + assert "200" == resUnLoss.json()["code"], "副卡解挂失败" | |
209 | + | |
210 | + """测试完成""" | |
211 | + | |
212 | + def test_lossCardError(self): | |
213 | + """挂失卡片异常情况""" | |
214 | + # 卡账户信息准备 | |
215 | + accountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
216 | + cardNo=self.startCardNo) | |
217 | + accountId, customerId = accountInfo.json()["data"]["accountId"], accountInfo.json()["data"]["customerId"] | |
218 | + slaveCardAccountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
219 | + cardNo=self.startSlaveCardNo) | |
220 | + print("slaveCardAccountInfo ", slaveCardAccountInfo.json()) | |
221 | + customerIdSlaveCard, accountIdSlaveCard = slaveCardAccountInfo.json()["data"]["customerId"], \ | |
222 | + slaveCardAccountInfo.json()["data"]["accountId"] | |
223 | + # 以上为测试数据准备 | |
224 | + | |
225 | + """开始测试""" | |
226 | + # 密码长度不满足六位数字时挂失失败 | |
227 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
228 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
229 | + loginPwd="1111111") | |
230 | + assert "1000" == resLossCard.json()["code"], "密码长度超过六位的错误验证测试不通过" | |
231 | + assert "密码必须6位" == resLossCard.json()["message"], "密码长度超过六位的错误验证测试不通过" | |
232 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
233 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
234 | + loginPwd="11111") | |
235 | + assert "1000" == resLossCard.json()["code"], "密码长度不足六位的错误验证测试不通过" | |
236 | + assert "密码必须6位" == resLossCard.json()["message"], "密码长度不足六位的错误验证测试不通过" | |
237 | + | |
238 | + # 密码错误挂失失败 | |
239 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
240 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
241 | + loginPwd="123890") | |
242 | + assert "10001" == resLossCard.json()["code"], "密码错误挂失失败测试不通过" | |
243 | + assert "密码输入有误" == resLossCard.json()["message"], "密码错误挂失失败测试不通过" | |
244 | + | |
245 | + | |
246 | + # 主卡挂失后,副卡不可以再进行挂失 | |
247 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
248 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
249 | + loginPwd=self.loginPwd) | |
250 | + assert "200" == resLossCard.json()["code"], "卡片挂失失败" | |
251 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
252 | + cardNo=str(self.startSlaveCardNo), accountId=accountIdSlaveCard, | |
253 | + customerId=customerIdSlaveCard, | |
254 | + loginPwd=self.loginPwd) | |
255 | + assert "2000" == resLossCard.json()["code"], "主卡挂失后副卡不能挂失测试失败" | |
256 | + assert f"该卡的主卡【{self.startCardNo}】为挂失状态,不能进行此操作" == resLossCard.json()["message"], "主卡挂失后副卡不能挂失测试失败" | |
257 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
258 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
259 | + loginPwd=self.loginPwd) | |
260 | + assert "200" == resUnLoss.json()["code"], "卡片解挂失败" | |
261 | + """测试完成""" | |
262 | + | |
263 | + def test_getByCardForUnLost(self): | |
264 | + """挂失卡片信息信息""" | |
265 | + # 卡账户信息准备 | |
266 | + accountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
267 | + cardNo=self.startCardNo) | |
268 | + accountId, customerId = accountInfo.json()["data"]["accountId"], accountInfo.json()["data"]["customerId"] | |
269 | + slaveCardAccountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
270 | + cardNo=self.startSlaveCardNo) | |
271 | + print("slaveCardAccountInfo ", slaveCardAccountInfo.json()) | |
272 | + customerIdSlaveCard, accountIdSlaveCard = slaveCardAccountInfo.json()["data"]["customerId"], \ | |
273 | + slaveCardAccountInfo.json()["data"]["accountId"] | |
274 | + # 以上为测试数据准备 | |
275 | + | |
276 | + """开始测试""" | |
277 | + | |
278 | + # 使用状态正常的卡片进行信息获取 | |
279 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
280 | + cardNo=self.startCardNo) | |
281 | + print(resGetByCard.json()) | |
282 | + assert "2000" == resGetByCard.json()["code"],"状态正常的卡片用户信息获取测试不通过" | |
283 | + assert "该卡为正常状态,不能进行此操作" == resGetByCard.json()["message"],"状态正常的卡片用户信息获取测试不通过" | |
284 | + | |
285 | + # 已挂失的卡片可以成功获取到卡片信息 | |
286 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
287 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
288 | + loginPwd=self.loginPwd) | |
289 | + assert "200" == resLossCard.json()["code"], "卡片挂失失败" | |
290 | + | |
291 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
292 | + cardNo=self.startCardNo) | |
293 | + print(resGetByCard.json()) | |
294 | + assert "200" == resGetByCard.json()["code"],"已挂失的卡片可以成功获取到卡片信息测试不通过" | |
295 | + assert f"{accountId}" in resGetByCard.text,"已挂失的卡片可以成功获取到卡片信息测试不通过" | |
296 | + | |
297 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
298 | + cardNo=str(self.startCardNo), accountId=accountId, customerId=customerId, | |
299 | + loginPwd=self.loginPwd) | |
300 | + assert "200" == resUnLoss.json()["code"], "卡片解挂失败" | |
301 | + | |
302 | + # 未开卡的卡片获取信息验证 | |
303 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
304 | + cardNo="999999999999") | |
305 | + print(resGetByCard.json()) | |
306 | + assert "10001" == resGetByCard.json()["code"],"未开卡的卡片获取信息验证测试不通过" | |
307 | + assert "卡账户不存在" == resGetByCard.json()["message"],"未开卡的卡片获取信息验证测试不通过" | |
308 | + | |
309 | + # 副卡挂失操作异常操作 | |
310 | + print("开始副卡挂失异常操作") | |
311 | + | |
312 | + # 使用状态正常的副卡进行信息获取 | |
313 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, | |
314 | + clientHeaders=self.clientHeaders, | |
315 | + cardNo=self.startSlaveCardNo) | |
316 | + print(resGetByCard.json()) | |
317 | + assert "2000" == resGetByCard.json()["code"], "状态正常的副卡用户信息获取测试不通过" | |
318 | + assert "该卡为正常状态,不能进行此操作" == resGetByCard.json()["message"], "状态正常的副卡用户信息获取测试不通过" | |
319 | + | |
320 | + # 已挂失的副卡可以正常查询 | |
321 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
322 | + cardNo=str(self.startSlaveCardNo), accountId=accountIdSlaveCard, | |
323 | + customerId=customerIdSlaveCard, | |
324 | + loginPwd=self.loginPwd) | |
325 | + assert "200" == resLossCard.json()["code"], "副卡挂失失败" | |
326 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
327 | + cardNo=self.startSlaveCardNo) | |
328 | + assert "200" == resGetByCard.json()["code"],"已挂失的副卡可以正常查询测试不通过" | |
329 | + assert f"{accountId}" in resGetByCard.text,"已挂失的副卡可以正常查询测试不通过" | |
330 | + | |
331 | + # 副卡解挂 | |
332 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
333 | + cardNo=str(self.startSlaveCardNo), accountId=accountIdSlaveCard, | |
334 | + customerId=customerIdSlaveCard, | |
335 | + loginPwd=self.loginPwd) | |
336 | + assert "200" == resUnLoss.json()["code"], "副卡解挂失败" | |
337 | + """测试完成""" | |
338 | + | |
339 | + | |
340 | + def test_unLostError(self): | |
341 | + """卡片异常解挂""" | |
342 | + # 卡账户信息准备 | |
343 | + accountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
344 | + cardNo=self.startCardNo) | |
345 | + accountId, customerId = accountInfo.json()["data"]["accountId"], accountInfo.json()["data"]["customerId"] | |
346 | + slaveCardAccountInfo = openCard.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
347 | + cardNo=self.startSlaveCardNo) | |
348 | + print("slaveCardAccountInfo ", slaveCardAccountInfo.json()) | |
349 | + customerIdSlaveCard, accountIdSlaveCard = slaveCardAccountInfo.json()["data"]["customerId"], \ | |
350 | + slaveCardAccountInfo.json()["data"]["accountId"] | |
351 | + resLossCard = cardLostAndUnLost.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
352 | + cardNo=str(self.startCardNo), accountId=accountId, | |
353 | + customerId=customerId, | |
354 | + loginPwd=self.loginPwd) | |
355 | + assert "200" == resLossCard.json()["code"], "卡片挂失失败" | |
356 | + resGetByCard = cardLostAndUnLost.getByCardForUnLost(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
357 | + cardNo=self.startCardNo) | |
358 | + assert "200" == resGetByCard.json()["code"],"已挂失的卡片可以成功获取到卡片信息测试不通过" | |
359 | + | |
360 | + """开始测试""" | |
361 | + # 使用错误的密码进行解挂 | |
362 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
363 | + cardNo=str(self.startCardNo), accountId=accountId, | |
364 | + customerId=customerId, | |
365 | + loginPwd="123890") | |
366 | + print("resUnLoss",resUnLoss.json()) | |
367 | + assert "10001" == resUnLoss.json()["code"], "使用错误的密码解挂失败测试不通过" | |
368 | + assert "密码输入有误" == resUnLoss.json()["message"], "使用错误的密码解挂失败测试不通过" | |
369 | + | |
370 | + # 小于六位的密码进行解挂 | |
371 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
372 | + cardNo=str(self.startCardNo), accountId=accountId, | |
373 | + customerId=customerId, | |
374 | + loginPwd="123") | |
375 | + print("resUnLoss",resUnLoss.json()) | |
376 | + assert "10001" == resUnLoss.json()["code"], "小于六位的密码进行解挂失败测试不通过" | |
377 | + assert "密码输入有误" == resUnLoss.json()["message"], "小于六位的密码进行解挂失败测试不通过" | |
378 | + | |
379 | + # 大于六位的密码进行解挂 | |
380 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
381 | + cardNo=str(self.startCardNo), accountId=accountId, | |
382 | + customerId=customerId, | |
383 | + loginPwd="123111123") | |
384 | + print("resUnLoss", resUnLoss.json()) | |
385 | + assert "10001" == resUnLoss.json()["code"], "大于六位的密码进行解挂失败测试不通过" | |
386 | + assert "密码输入有误" == resUnLoss.json()["message"], "大于六位的密码进行解挂失败测试不通过" | |
387 | + """解挂时未进行密码长度验证""" | |
388 | + | |
389 | + resUnLoss = cardLostAndUnLost.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
390 | + cardNo=str(self.startCardNo), accountId=accountId, | |
391 | + customerId=customerId, | |
392 | + loginPwd=self.loginPwd) | |
393 | + """测试完成""" | |
394 | + | ... | ... |
testCase/cardSystem/test_openMasterCard.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/5/26 10:16 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_openMasterCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + 主卡开卡测试 | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import time | |
15 | +import commons.api.cardStorageIn as cSI | |
16 | +import commons.api.returnCard as reC | |
17 | +import commons.api.cardStorageOut as cSO | |
18 | +import commons.api.openCard as oMC | |
19 | +import commons.api.cardStock as cS | |
20 | +from commons.scripts.createIdNum import cIN | |
21 | +from commons.api.doLogin import doLogin | |
22 | +from commons.scripts.readConf import readConfig | |
23 | + | |
24 | +class tset_openMasterCard(unittest.TestCase): | |
25 | + def setUp(self) -> None: | |
26 | + pass | |
27 | + | |
28 | + def tearDown(self) -> None: | |
29 | + pass | |
30 | + | |
31 | + @classmethod | |
32 | + def setUpClass(cls) -> None: | |
33 | + # 配置信息获取 | |
34 | + readC = readConfig() | |
35 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
36 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
37 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
38 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
39 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
40 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
41 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
42 | + # 登录信息获取 | |
43 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
44 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
45 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
46 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
47 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
48 | + | |
49 | + @classmethod | |
50 | + def tearDownClass(cls) -> None: | |
51 | + pass | |
52 | + | |
53 | + def test_getCustomerInfo(self): | |
54 | + """ | |
55 | + 客户查询测试 | |
56 | + :return: | |
57 | + """ | |
58 | + # 正确的获取客户信息 | |
59 | + res = oMC.getCustomerInfo(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cCNum=self.cCNum) | |
60 | + print(res.json()) | |
61 | + assert "200" == res.json()["code"],"使用已存在的客户信息查询失败" | |
62 | + # 获取客户身份类型 | |
63 | + res = oMC.getSubTypeName(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,customerId=res.json()["data"]["id"]) | |
64 | + assert "200" == res.json()["code"],"查询客户身份类型失败" | |
65 | + assert "" != res.json()["data"], "身份类型不应该为空" | |
66 | + | |
67 | + # 使用不存在的证件号进行查询 | |
68 | + res = oMC.getCustomerInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cCNum=cIN()) | |
69 | + assert "20002" == res.json()["code"], "使用不存在的客户信息查询时查询结果不一致" | |
70 | + | |
71 | + def test_checkNewCardNo(self): | |
72 | + """ | |
73 | + 卡状态校验 | |
74 | + :return: | |
75 | + """ | |
76 | + # 正向测试卡面校验功能---> #获取客户信息 | |
77 | + print(self.clientHeaders) | |
78 | + resCusInfo = oMC.getCustomerInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cCNum=self.cCNum) | |
79 | + print(resCusInfo.json()) | |
80 | + assert "200" == resCusInfo.json()["code"], "使用已存在的客户信息查询失败" | |
81 | + # 校验 | |
82 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=self.cardNum,customerId=resCusInfo.json()["data"]["id"],customerType=resCusInfo.json()["data"]["customerType"]) | |
83 | + print("res.json()", res.json()) | |
84 | + assert "200" == res.json()["code"], "使用已存在未开卡的卡片进行校验校验失败" | |
85 | + | |
86 | + # 使用未入库的卡片进行校验 | |
87 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=999999999999, | |
88 | + customerId=resCusInfo.json()["data"]["id"], | |
89 | + customerType=resCusInfo.json()["data"]["customerType"]) | |
90 | + assert "10000" == res.json()["code"], "使用已存在未开卡的卡片进行校验校验失败" | |
91 | + assert "该卡未入库!" == res.json()["message"], "message信息与预期信息不匹配" | |
92 | + | |
93 | + # 未出库的卡片进行校验 | |
94 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
95 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=1) | |
96 | + if self.firmId == 9: | |
97 | + startCardNo, endCardNo = 999999999998, 999999999998 | |
98 | + elif self.firmId == 8: | |
99 | + startCardNo, endCardNo = 999999999997, 999999999997 | |
100 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
101 | + endCardNo=endCardNo, cardFace=cardFace) | |
102 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
103 | + customerId=resCusInfo.json()["data"]["id"], | |
104 | + customerType=resCusInfo.json()["data"]["customerType"]) | |
105 | + print(res.json()) | |
106 | + assert "20000" == res.json()["code"], "未出库的卡片进行校验校验失败" | |
107 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "未出库卡片校验,message信息与预期信息不匹配" | |
108 | + | |
109 | + # 对已开卡的卡片进行校验 | |
110 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=self.cardNumRe, | |
111 | + customerId=resCusInfo.json()["data"]["id"], | |
112 | + customerType=resCusInfo.json()["data"]["customerType"]) | |
113 | + print(res.json()) | |
114 | + assert "20000" == res.json()["code"], "未出库的卡片进行校验校验失败" | |
115 | + assert "该卡状态为[在用],不能开卡!" == res.json()["message"], "未出库卡片校验,message信息与预期信息不匹配" | |
116 | + | |
117 | + def test_getOpenCardFee(self): | |
118 | + """收费项获取""" | |
119 | + # 获取开卡手续费 | |
120 | + res = oMC.getOpenCardFee(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders) | |
121 | + print(res.json()) | |
122 | + assert "200" == res.json()["code"],"开卡手续费获取失败" | |
123 | + assert "" != res.json()["data"],"开卡手续费获取失败" | |
124 | + | |
125 | + def test_openMasterCard(self): | |
126 | + """ | |
127 | + 正向开卡流程 | |
128 | + :return: | |
129 | + """ | |
130 | + # 卡片出库 | |
131 | + faceNum = 1 | |
132 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
133 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
134 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
135 | + endCardNo = startCardNo+1 | |
136 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
137 | + endCardNo=endCardNo, cardFace=cardFace) | |
138 | + # 出库 | |
139 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
140 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
141 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
142 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
143 | + applyUserCode=self.applyUserCode, amount=amount) | |
144 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
145 | + | |
146 | + | |
147 | + # 获取手续费 | |
148 | + costFee = oMC.getOpenCardFee(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders).json()["data"] | |
149 | + print(costFee) | |
150 | + # 获取客户信息 | |
151 | + resCusInfo = oMC.getCustomerInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
152 | + cCNum=self.cCNum).json()["data"] | |
153 | + print(resCusInfo) | |
154 | + # 客户信息准备 | |
155 | + customerName = resCusInfo["name"] | |
156 | + customerType = resCusInfo["customerType"] | |
157 | + customerId = resCusInfo["id"] | |
158 | + customerOrganizationType=resCusInfo["organizationType"] | |
159 | + customerCredentialType = resCusInfo["certificateType"] | |
160 | + customerContactsPhone = resCusInfo["customerContactsPhone"] | |
161 | + customerCertificateNumber = resCusInfo["certificateNumber"] | |
162 | + customerCode = resCusInfo["code"] | |
163 | + name = self.applyUserName | |
164 | + holdName = resCusInfo["name"] | |
165 | + holdContactsPhone = resCusInfo["customerContactsPhone"] | |
166 | + | |
167 | + # 卡片状态校验 | |
168 | + resCheck = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
169 | + customerId=customerId, | |
170 | + customerType=customerType) | |
171 | + print(resCheck.json()) | |
172 | + assert "200" == resCheck.json()["code"],"卡片校验失败" | |
173 | + | |
174 | + # 开卡 | |
175 | + print("开始开卡") | |
176 | + resOpenCard = oMC.openMasterCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
177 | + costFee=costFee, customerName=customerName, customerType=customerType, | |
178 | + customerId=customerId, loginPwd=self.loginPwd, | |
179 | + customerOrganizationType=customerOrganizationType, | |
180 | + customerCredentialType=customerCredentialType, | |
181 | + customerContactsPhone=customerContactsPhone, | |
182 | + customerCertificateNumber=customerCertificateNumber, customerCode=customerCode, | |
183 | + name=name, holdName=holdName, holdContactsPhone=holdContactsPhone,cardType=10) | |
184 | + | |
185 | + print("resOpenCard.json()",resOpenCard.json()) | |
186 | + | |
187 | + assert "200" == resOpenCard.json()["code"],"开卡失败" | |
188 | + assert None != resOpenCard.json()["data"], "开卡失败" | |
189 | + | |
190 | + # 获取卡信息 | |
191 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
192 | + | |
193 | + def test_dupOpenCard(self): | |
194 | + """ | |
195 | + 不能重复开卡 | |
196 | + :return: | |
197 | + """ | |
198 | + # 卡片出库 | |
199 | + faceNum = 1 | |
200 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
201 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
202 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
203 | + endCardNo = startCardNo+1 | |
204 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
205 | + endCardNo=endCardNo, cardFace=cardFace) | |
206 | + # 出库 | |
207 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
208 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
209 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
210 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
211 | + applyUserCode=self.applyUserCode, amount=amount) | |
212 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
213 | + | |
214 | + # 获取手续费 | |
215 | + costFee = oMC.getOpenCardFee(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders).json()["data"] | |
216 | + print(costFee) | |
217 | + # 获取客户信息 | |
218 | + resCusInfo = oMC.getCustomerInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
219 | + cCNum=self.cCNum).json()["data"] | |
220 | + print(resCusInfo) | |
221 | + # 客户信息准备 | |
222 | + customerName = resCusInfo["name"] | |
223 | + customerType = resCusInfo["customerType"] | |
224 | + customerId = resCusInfo["id"] | |
225 | + customerOrganizationType = resCusInfo["organizationType"] | |
226 | + customerCredentialType = resCusInfo["certificateType"] | |
227 | + customerContactsPhone = resCusInfo["customerContactsPhone"] | |
228 | + customerCertificateNumber = resCusInfo["certificateNumber"] | |
229 | + customerCode = resCusInfo["code"] | |
230 | + name = self.applyUserName | |
231 | + holdName = resCusInfo["name"] | |
232 | + holdContactsPhone = resCusInfo["customerContactsPhone"] | |
233 | + | |
234 | + # 卡片状态校验 | |
235 | + resCheck = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
236 | + cardNo=startCardNo, | |
237 | + customerId=customerId, | |
238 | + customerType=customerType) | |
239 | + print(resCheck.json()) | |
240 | + assert "200" == resCheck.json()["code"], "卡片校验失败" | |
241 | + | |
242 | + # 开卡 | |
243 | + print("开始开卡") | |
244 | + resOpenCard = oMC.openMasterCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
245 | + cardNo=startCardNo, | |
246 | + costFee=costFee, customerName=customerName, customerType=customerType, | |
247 | + customerId=customerId, loginPwd=self.loginPwd, | |
248 | + customerOrganizationType=customerOrganizationType, | |
249 | + customerCredentialType=customerCredentialType, | |
250 | + customerContactsPhone=customerContactsPhone, | |
251 | + customerCertificateNumber=customerCertificateNumber, customerCode=customerCode, | |
252 | + name=name, holdName=holdName, holdContactsPhone=holdContactsPhone, cardType=10) | |
253 | + print("resOpenCard.json()", resOpenCard.json()) | |
254 | + assert "200" == resOpenCard.json()["code"], "开卡失败" | |
255 | + assert None != resOpenCard.json()["data"], "开卡失败" | |
256 | + | |
257 | + resOpenCard = oMC.openMasterCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
258 | + cardNo=startCardNo, | |
259 | + costFee=costFee, customerName=customerName, customerType=customerType, | |
260 | + customerId=customerId, loginPwd=self.loginPwd, | |
261 | + customerOrganizationType=customerOrganizationType, | |
262 | + customerCredentialType=customerCredentialType, | |
263 | + customerContactsPhone=customerContactsPhone, | |
264 | + customerCertificateNumber=customerCertificateNumber, customerCode=customerCode, | |
265 | + name=name, holdName=holdName, holdContactsPhone=holdContactsPhone, cardType=10) | |
266 | + print("resOpenCard.json()", resOpenCard.json()) | |
267 | + assert "20000" == resOpenCard.json()["code"], "重复开卡失败测试不通过" | |
268 | + assert "该卡状态为[在用],不能开卡!" == resOpenCard.json()["message"], "重复开卡失败测试不通过" | |
269 | + | |
270 | + # 获取卡信息 | |
271 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
272 | + | |
273 | + def test_oneCardOneCus(self): | |
274 | + """ | |
275 | + 一张卡只能同时开被开卡给一个用户 | |
276 | + :return: | |
277 | + """ | |
278 | + # 卡片入库 | |
279 | + faceNum = 1 | |
280 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
281 | + endCardNo = startCardNo+1 | |
282 | + | |
283 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
284 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
285 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
286 | + endCardNo=endCardNo, cardFace=cardFace) | |
287 | + # 出库 | |
288 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
289 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
290 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
291 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
292 | + applyUserCode=self.applyUserCode, amount=amount) | |
293 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
294 | + | |
295 | + # 开卡给第一个客户 | |
296 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cCNum=self.cCNum,cardNo=startCardNo,applyUserName=self.applyUserName) | |
297 | + assert "200" == resFirstOpen.json()["code"],"第一次开卡,开卡失败" | |
298 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
299 | + | |
300 | + # 开卡给第二个客户 | |
301 | + resSecondOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,cCNum=self.cCNumB,cardNo=startCardNo,applyUserName=self.applyUserName) | |
302 | + print("resSecondOpen.json() - - ->",resSecondOpen.json()) | |
303 | + assert "20000" == resSecondOpen.json()["code"], "一张卡不能开卡给多用户测试不通过" | |
304 | + assert "该卡状态为[在用],不能开卡!" in resSecondOpen.text, "一张卡不能开卡给多用户测试不通过" | |
305 | + | |
306 | + # 退卡 | |
307 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
308 | + | |
309 | + def test_openCardState(self): | |
310 | + """ | |
311 | + 不同异常状态的卡片在入库时的开卡情况 | |
312 | + :return: | |
313 | + """ | |
314 | + # 卡片入库 | |
315 | + faceNum = 1 | |
316 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
317 | + endCardNo = startCardNo+1 | |
318 | + | |
319 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
320 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
321 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
322 | + endCardNo=endCardNo, cardFace=cardFace) | |
323 | + | |
324 | + # 已作废的卡片出库失败 | |
325 | + resVoid = cS.cardVoid(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=startCardNo) | |
326 | + print(resVoid.json()) | |
327 | + assert resVoid.json()["code"] == "200", "新出库卡片作废测试失败" | |
328 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
329 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
330 | + print(resFirstOpen.json()) | |
331 | + assert "20000" == resFirstOpen.json()["code"], "已作废的卡片不能开卡,测试不通过" | |
332 | + assert "该卡状态为[作废],不能开卡!" == resFirstOpen.json()["message"], "已作废的卡片不能开卡,提示信息错误" | |
333 | + | |
334 | + # 未出库的卡片出库失败 | |
335 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
336 | + cCNum=self.cCNum, cardNo=endCardNo, applyUserName=self.applyUserName) | |
337 | + print(resFirstOpen.json()) | |
338 | + assert "20000" == resFirstOpen.json()["code"], "未激活的卡片不能开卡,测试不通过" | |
339 | + assert "该卡状态为[未激活],不能开卡!" == resFirstOpen.json()["message"], "未激活的卡片不能开卡,提示信息错误" | |
340 | + | ... | ... |
testCase/cardSystem/test_openSlaveCard.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/5/26 10:19 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_openSlaveCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + 副卡开卡测试 | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import time | |
15 | +import commons.api.cardStorageIn as cSI | |
16 | +import commons.api.returnCard as reC | |
17 | +import commons.api.cardStorageOut as cSO | |
18 | +import commons.api.openCard as oMC | |
19 | +import commons.api.cardLostAndUnLost as cLAUL | |
20 | +import commons.api.cardStock as cS | |
21 | +from commons.scripts.readConf import readConfig | |
22 | +from commons.api.doLogin import doLogin | |
23 | + | |
24 | +class tset_openMasterCard(unittest.TestCase): | |
25 | + def setUp(self) -> None: | |
26 | + pass | |
27 | + | |
28 | + def tearDown(self) -> None: | |
29 | + pass | |
30 | + | |
31 | + @classmethod | |
32 | + def setUpClass(cls) -> None: | |
33 | + # 配置信息获取 | |
34 | + readC = readConfig() | |
35 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
36 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
37 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
38 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
39 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
40 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
41 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
42 | + # 登录信息获取 | |
43 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
44 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
45 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
46 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
47 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
48 | + | |
49 | + @classmethod | |
50 | + def tearDownClass(cls) -> None: | |
51 | + pass | |
52 | + | |
53 | + def test_getAccountInfo(self): | |
54 | + """ | |
55 | + 获取卡片信息测试 | |
56 | + :return: | |
57 | + """ | |
58 | + # 使用未入库的卡片进行获取 | |
59 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost,clientHeaders =self.clientHeaders,cardNo=999999999999) | |
60 | + print(resGet.json()) | |
61 | + assert "10001" == resGet.json()["code"],"未入库卡片信息获取测试不通过" | |
62 | + assert "卡账户不存在" == resGet.json()["message"],"未入库卡片信息获取测试不通过" | |
63 | + | |
64 | + # 使用入库未出库的卡片进行信息获取 | |
65 | + # 卡片入库 | |
66 | + faceNum = 1 | |
67 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
68 | + endCardNo = startCardNo + 2 | |
69 | + | |
70 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
71 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
72 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
73 | + endCardNo=endCardNo, cardFace=cardFace) | |
74 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
75 | + print(resGet.json()) | |
76 | + assert "10001" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
77 | + assert "卡账户不存在" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
78 | + | |
79 | + # 使用出库未开卡的卡片进行信息获取 | |
80 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
81 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
82 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
83 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
84 | + applyUserCode=self.applyUserCode, amount=amount) | |
85 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
86 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
87 | + print(resGet.json()) | |
88 | + assert "10001" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
89 | + assert "卡账户不存在" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
90 | + | |
91 | + # 使用已开卡的卡片可以正确的获取到客户信息 | |
92 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
93 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
94 | + assert "200" == resFirstOpen.json()["code"], "开卡失败" | |
95 | + assert "data" in resFirstOpen.json(), "开卡失败" | |
96 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
97 | + # print("resGet.json()",resGet.json()) | |
98 | + assert "200" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
99 | + assert "data" in resGet.json(), "未出库卡片信息获取测试不通过" | |
100 | + | |
101 | + # 使用已挂失的卡片信息进行卡片信息获取 | |
102 | + accountId,customerId = resGet.json()["data"]["accountId"],resGet.json()["data"]["customerId"] | |
103 | + resLossCard = cLAUL.lossCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=str(startCardNo), | |
104 | + accountId=accountId, customerId=customerId, loginPwd=self.loginPwd) | |
105 | + # print("resLossCard.json()",resLossCard.json()) | |
106 | + assert "200" == resLossCard.json()["code"],"已挂失的卡片获取卡片信息测试不通过" | |
107 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
108 | + # print("resGet.json()", resGet.json()) | |
109 | + assert "2000" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
110 | + assert "该卡为挂失状态,不能进行此操作" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
111 | + # 解挂 | |
112 | + resUnLoss = cLAUL.unLostCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=str(startCardNo), | |
113 | + accountId=accountId, customerId=customerId, loginPwd=self.loginPwd) | |
114 | + # print("resUnLoss.json()",resUnLoss.json()) | |
115 | + | |
116 | + # 账号冻结状态 | |
117 | + | |
118 | + # 卡片锁定状态 | |
119 | + | |
120 | + # 使用已退还的卡片进行卡片信息获取 | |
121 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
122 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
123 | + # print("resGet.json()", resGet.json()) | |
124 | + assert "2000" == resGet.json()["code"], "未出库卡片信息获取测试不通过" | |
125 | + assert "该卡为退还状态,不能进行此操作" == resGet.json()["message"], "未出库卡片信息获取测试不通过" | |
126 | + | |
127 | + def test_checkSlaveCardNo(self): | |
128 | + """测试副卡校验功能开卡""" | |
129 | + # 使用未入库的副卡进行校验 | |
130 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=999999999999,cardType=20) | |
131 | + print(res.json()) | |
132 | + assert "10000" == res.json()["code"], "使用已存在未开卡的卡片进行校验校验失败" | |
133 | + assert "该卡未入库!" == res.json()["message"], "message信息与预期信息不匹配" | |
134 | + | |
135 | + # 使用未出库的卡片进行校验 | |
136 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
137 | + endSlaveCardNo = startSlaveCardNo + 1 | |
138 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
139 | + endCardNo=endSlaveCardNo, cardType=20) | |
140 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo, | |
141 | + cardType=20) | |
142 | + print(res.json()) | |
143 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
144 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
145 | + | |
146 | + # 使用已出库的卡片进行校验 | |
147 | + SlaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
148 | + amount = len([i for i in range(startSlaveCardNo, endSlaveCardNo + 1)]) | |
149 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=SlaveCardNos, | |
150 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
151 | + applyUserCode=self.applyUserCode, amount=amount) | |
152 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
153 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo, | |
154 | + cardType=20) | |
155 | + print(res.json()) | |
156 | + assert "200" == res.json()["code"], "使用已出库的卡片进行校验校验失败" | |
157 | + assert "OK" == res.json()["message"], "message信息与预期信息不匹配" | |
158 | + | |
159 | + # 使用已作废的卡片进行校验 | |
160 | + resCardVoid = cS.cardVoid(cardHost=self.cardHost,webHeaders=self.webHeaders,cardNo=endSlaveCardNo) | |
161 | + assert "200"==resCardVoid.json()["code"],"卡片作废失败" | |
162 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
163 | + cardNo=endSlaveCardNo, | |
164 | + cardType=20) | |
165 | + assert "20000" == res.json()["code"], "使用已作废的卡片进行校验校验失败" | |
166 | + assert "该卡状态为[作废],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
167 | + | |
168 | + | |
169 | + # 使用已开卡的卡片进行校验 | |
170 | + time.sleep(2) | |
171 | + faceNum = 1 | |
172 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
173 | + endCardNo = startCardNo+1 | |
174 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
175 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
176 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
177 | + endCardNo=endCardNo, cardFace=cardFace) | |
178 | + print("resSavaCard.json() ->",resSavaCard.json()) | |
179 | + # 出库 | |
180 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
181 | + print(cardNos) | |
182 | + amount = len([i for i in range(startCardNo, endCardNo)]) | |
183 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
184 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
185 | + applyUserCode=self.applyUserCode, amount=amount) | |
186 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
187 | + # 主卡开卡 | |
188 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
189 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
190 | + print("resFirstOpen",resFirstOpen.json()) | |
191 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
192 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
193 | + # 副卡开卡 | |
194 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
195 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
196 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
197 | + parentLoginPwd=self.loginPwd) | |
198 | + print("resOpenSlaveCard ---> ",resOpenSlaveCard.json()) | |
199 | + resCheckNewCardNo= oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo, | |
200 | + cardType=20) | |
201 | + print(resCheckNewCardNo.json()) | |
202 | + assert "20000" == resCheckNewCardNo.json()["code"], "使用已开卡的卡片进行校验校验失败" | |
203 | + assert "该卡状态为[在用],不能开卡!" == resCheckNewCardNo.json()["message"], "message信息与预期信息不匹配" | |
204 | + # 副卡退卡 | |
205 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
206 | + | |
207 | + | |
208 | + # 使用已退卡的卡片进行校验 | |
209 | + resCheckNewCardNo = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
210 | + cardNo=startSlaveCardNo, | |
211 | + cardType=20) | |
212 | + print("203 resCheckNewCardNo ",resCheckNewCardNo.json()) | |
213 | + assert "200" == resCheckNewCardNo.json()["code"], "使用已开卡的卡片进行校验校验失败" | |
214 | + assert "OK" == resCheckNewCardNo.json()["message"], "message信息与预期信息不匹配" | |
215 | + # 主卡退卡 | |
216 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
217 | + | |
218 | + | |
219 | + def test_openSlaveCard(self): | |
220 | + """ | |
221 | + 副卡开卡测试 | |
222 | + :return: | |
223 | + """ | |
224 | + # 主卡入库-出库-开卡 | |
225 | + faceNum = 1 | |
226 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
227 | + endCardNo = startCardNo + 1 | |
228 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
229 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
230 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
231 | + endCardNo=endCardNo, cardFace=cardFace) | |
232 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
233 | + # 出库 | |
234 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
235 | + print(cardNos) | |
236 | + amount = len([i for i in range(startCardNo, endCardNo)]) | |
237 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
238 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
239 | + applyUserCode=self.applyUserCode, amount=amount) | |
240 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
241 | + # 主卡开卡 | |
242 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
243 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
244 | + print("resFirstOpen", resFirstOpen.json()) | |
245 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
246 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
247 | + | |
248 | + # 副卡入库-出库-开卡 | |
249 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
250 | + endSlaveCardNo = startSlaveCardNo + 1 | |
251 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
252 | + endCardNo=endSlaveCardNo, cardType=20) | |
253 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
254 | + cardNo=startSlaveCardNo, | |
255 | + cardType=20) | |
256 | + print(res.json()) | |
257 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
258 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
259 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
260 | + amount = len([i for i in range(startSlaveCardNo, endSlaveCardNo + 1)]) | |
261 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
262 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
263 | + applyUserCode=self.applyUserCode, amount=amount) | |
264 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
265 | + # 开卡 | |
266 | + costFee = oMC.getOpenCardFee(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders).json()["data"] | |
267 | + print(costFee) | |
268 | + resGet = oMC.getAccountInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo).json()["data"] | |
269 | + print("resGet ---> ", resGet) | |
270 | + customerName = resGet["customerName"] | |
271 | + customerId = resGet["customerId"] | |
272 | + customerCredentialType = resGet["customerCertificateType"] | |
273 | + customerContactsPhone = resGet["customerContactsPhone"] | |
274 | + loginPwd = self.loginPwd | |
275 | + cardNo = startSlaveCardNo | |
276 | + customerCertificateNumber = resGet["customerCertificateNumber"] | |
277 | + cardType = 20 | |
278 | + customerCode = resGet["customerCode"] | |
279 | + name = self.applyUserName | |
280 | + parentAccountId = resGet["accountId"] | |
281 | + parentLoginPwd = self.loginPwd | |
282 | + holdName = customerName | |
283 | + holdContactsPhone = customerContactsPhone | |
284 | + resOpenSlaveCard = oMC.openSlaveCard(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
285 | + customerName=customerName, | |
286 | + customerId=customerId, customerContactsPhone=customerContactsPhone, | |
287 | + loginPwd=loginPwd, cardNo=cardNo, | |
288 | + customerCertificateNumber=customerCertificateNumber, cardType=cardType, | |
289 | + costFee=costFee, customerCode=customerCode, | |
290 | + name=name, parentAccountId=parentAccountId, parentLoginPwd=parentLoginPwd, | |
291 | + holdName=holdName, | |
292 | + holdContactsPhone=holdContactsPhone, | |
293 | + customerCredentialType=customerCredentialType | |
294 | + ) | |
295 | + | |
296 | + # # 办理副卡方法封装 | |
297 | + # resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
298 | + # cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
299 | + # loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
300 | + # parentLoginPwd=self.loginPwd) | |
301 | + | |
302 | + print("resOpenSlaveCard.json()", resOpenSlaveCard.json()) | |
303 | + assert "200" == resOpenSlaveCard.json()["code"],"开卡测试失败" | |
304 | + assert "success" == resOpenSlaveCard.json()["message"], "开卡测试失败" | |
305 | + # 副卡退卡 | |
306 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
307 | + # 主卡退卡 | |
308 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
309 | + | |
310 | + def test_openSlaveCardState(self): | |
311 | + """ | |
312 | + 异常的副卡办理状态 | |
313 | + :return: | |
314 | + """ | |
315 | + # 主卡入库-出库-开卡 | |
316 | + faceNum = 1 | |
317 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
318 | + endCardNo = startCardNo + 1 | |
319 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
320 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
321 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
322 | + endCardNo=endCardNo, cardFace=cardFace) | |
323 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
324 | + # 出库 | |
325 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
326 | + print(cardNos) | |
327 | + amount = len([i for i in range(startCardNo, endCardNo)]) | |
328 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
329 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
330 | + applyUserCode=self.applyUserCode, amount=amount) | |
331 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
332 | + # 主卡开卡 | |
333 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
334 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
335 | + print("resFirstOpen", resFirstOpen.json()) | |
336 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
337 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
338 | + | |
339 | + # 副卡入库-出库-开卡 | |
340 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
341 | + endSlaveCardNo = startSlaveCardNo + 1 | |
342 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
343 | + endCardNo=endSlaveCardNo, cardType=20) | |
344 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
345 | + cardNo=startSlaveCardNo, | |
346 | + cardType=20) | |
347 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
348 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
349 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
350 | + amount = len([i for i in range(startSlaveCardNo, endSlaveCardNo + 1)]) | |
351 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
352 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
353 | + applyUserCode=self.applyUserCode, amount=amount) | |
354 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
355 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
356 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
357 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
358 | + parentLoginPwd=self.loginPwd) | |
359 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
360 | + # 以上为测试准备 | |
361 | + | |
362 | + # 卡片不能重复开卡 | |
363 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
364 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
365 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
366 | + parentLoginPwd=self.loginPwd) | |
367 | + print("resOpenSlaveCard ",resOpenSlaveCard.json()) | |
368 | + assert "20000" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
369 | + assert "该卡状态为[在用],不能开卡!" == resOpenSlaveCard.json()["message"], "开卡测试失败" | |
370 | + | |
371 | + # 副卡退还后可以重新开卡 | |
372 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
373 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
374 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
375 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
376 | + parentLoginPwd=self.loginPwd) | |
377 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
378 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
379 | + | |
380 | + # 主卡密码错误时开卡失败 | |
381 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
382 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
383 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
384 | + parentLoginPwd="909090") | |
385 | + assert "10001" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
386 | + assert "密码输入有误" == resOpenSlaveCard.json()["message"], "开卡测试失败" | |
387 | + | |
388 | + # 副卡新密码格式不正确-接口暂未校验 | |
389 | + | |
390 | + # # 副卡退卡 | |
391 | + # reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
392 | + # 主卡退卡 | |
393 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
394 | + | |
395 | + | ... | ... |
testCase/cardSystem/test_outCard.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/5/24 9:51 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_outCard.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + 卡片出库测试用例 | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import re | |
15 | +import time | |
16 | +import math | |
17 | +import commons.api.cardStorageIn as cSI | |
18 | +import commons.api.cardStorageOut as cSO | |
19 | +from commons.scripts.readConf import readConfig | |
20 | +from commons.api.doLogin import doLogin | |
21 | + | |
22 | + | |
23 | +class test_outCard(unittest.TestCase): | |
24 | + @classmethod | |
25 | + def setUpClass(cls): | |
26 | + # 获取登录信息和可用headers | |
27 | + rC = readConfig() | |
28 | + cls.cardHost = rC.returnOptionsItems("host", "cardHost") | |
29 | + cls.webHeaders,cls.clientHeaders,cls.userInfo = doLogin().loginUser() | |
30 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
31 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
32 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
33 | + | |
34 | + @classmethod | |
35 | + def tearDownClass(cls): | |
36 | + pass | |
37 | + | |
38 | + def setUp(self): | |
39 | + time.sleep(2) | |
40 | + # pass | |
41 | + | |
42 | + def tearDown(self): | |
43 | + pass | |
44 | + | |
45 | + def test_openPage(self): | |
46 | + # 直接打开出库列表 | |
47 | + listRes = cSO.getOutPage(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
48 | + print(listRes.json()) | |
49 | + assert "200" == listRes.json()["code"],"出库列表查询失败" | |
50 | + | |
51 | + def test_outCard_positive(self): | |
52 | + # 先添加入库卡片 | |
53 | + faceNum = 3 | |
54 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
55 | + endCardNo = startCardNo + 1 | |
56 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders),faceNum=faceNum) | |
57 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost,webHeaders=self.webHeaders,startCardNo=startCardNo,endCardNo=endCardNo,cardFace=cardFace) | |
58 | + | |
59 | + # 出库 ---> 卡片类别获取 | |
60 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost,webHeaders=self.webHeaders) | |
61 | + # 获取用户信息 | |
62 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode,keyword=self.applyUserCode) | |
63 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
64 | + # 出库 ---> 卡面信息获取 | |
65 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost,webHeaders=self.webHeaders),faceNum=faceNum) | |
66 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
67 | + for cardNo in range(startCardNo,endCardNo+1): | |
68 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders,cardFace=cardFaceB,cardNo=cardNo) | |
69 | + assert cardState.json()["code"] == "200","卡片面校验不通过" | |
70 | + assert cardFace == cardFaceB,"卡面信息断言失败" | |
71 | + # 出库 ---> 卡片出库 | |
72 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
73 | + amount = len([i for i in range(startCardNo,endCardNo+1)]) | |
74 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost,webHeaders=self.webHeaders,cardNos=cardNos,applyUserName=self.applyUserName,applyUserId=self.applyUserId,applyUserCode=self.applyUserCode,amount=amount) | |
75 | + assert outCardRes.json()["code"] == "200","出库失败" | |
76 | + | |
77 | + # 出库信息断言 | |
78 | + outCardDetail = cSO.getOutCardDetail(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
79 | + assert sorted(outCardDetail) == sorted([str(i) for i in range(startCardNo,endCardNo+1)]), "返回的出库信息与实际出库信息不一致" | |
80 | + | |
81 | + def test_searchUser(self): | |
82 | + # 先添加入库卡片 | |
83 | + faceNum = 3 | |
84 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
85 | + endCardNo = startCardNo + 1 | |
86 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
87 | + faceNum=faceNum) | |
88 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
89 | + endCardNo=endCardNo, cardFace=cardFace) | |
90 | + | |
91 | + # 出库 ---> 卡片类别获取 | |
92 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
93 | + # 获取用户信息 | |
94 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode, | |
95 | + keyword=self.applyUserCode) | |
96 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
97 | + # 出库 ---> 卡面信息获取 | |
98 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
99 | + faceNum=faceNum) | |
100 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
101 | + for cardNo in range(startCardNo, endCardNo + 1): | |
102 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
103 | + cardNo=cardNo) | |
104 | + assert cardState.json()["code"] == "200", "卡片面校验不通过" | |
105 | + assert cardFace == cardFaceB, "卡面信息断言失败" | |
106 | + # 出库 ---> 卡片出库 | |
107 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
108 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
109 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
110 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
111 | + applyUserCode=self.applyUserCode, amount=amount) | |
112 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
113 | + | |
114 | + # 根据领取人获取最新的出库记录 | |
115 | + listRes = cSO.getOutPage(cardHost=self.cardHost, webHeaders=self.webHeaders,applyUserName=self.applyUserName, | |
116 | + applyUserId=self.applyUserId) | |
117 | + assert self.applyUserName == list(set([i["applyUserName"] for i in listRes.json()["rows"]]))[0],"领取人查询成功" | |
118 | + | |
119 | + def test_searchCard(self): | |
120 | + # 先添加入库卡片 | |
121 | + faceNum = 3 | |
122 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
123 | + endCardNo = startCardNo + 1 | |
124 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
125 | + faceNum=faceNum) | |
126 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
127 | + endCardNo=endCardNo, cardFace=cardFace) | |
128 | + | |
129 | + # 出库 ---> 卡片类别获取 | |
130 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
131 | + # 获取用户信息 | |
132 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode, | |
133 | + keyword=self.applyUserCode) | |
134 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
135 | + # 出库 ---> 卡面信息获取 | |
136 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
137 | + faceNum=faceNum) | |
138 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
139 | + for cardNo in range(startCardNo, endCardNo + 1): | |
140 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
141 | + cardNo=cardNo) | |
142 | + assert cardState.json()["code"] == "200", "卡片面校验不通过" | |
143 | + assert cardFace == cardFaceB, "卡面信息断言失败" | |
144 | + # 出库 ---> 卡片出库 | |
145 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
146 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
147 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
148 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
149 | + applyUserCode=self.applyUserCode, amount=amount) | |
150 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
151 | + | |
152 | + # 根据领取人获取最新的出库记录 | |
153 | + listRes = cSO.getOutPage(cardHost=self.cardHost, webHeaders=self.webHeaders,cardNo=startCardNo) | |
154 | + assert 1 == len([i for i in listRes.json()["rows"]]),"查询结果不唯一,查询失败" | |
155 | + firstId = listRes.json()["rows"][0]["id"] | |
156 | + resDetail = cSO.getOutListDetail(cardHost=self.cardHost, webHeaders=self.webHeaders, id=firstId) | |
157 | + outCardDetail = re.findall("<ul><li>(.*?)</li></ul>", resDetail.text) | |
158 | + assert str(startCardNo) in outCardDetail,"查询失败" | |
159 | + | |
160 | + def test_searchDate(self): | |
161 | + # 先添加入库卡片 | |
162 | + faceNum = 3 | |
163 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
164 | + endCardNo = startCardNo + 1 | |
165 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
166 | + faceNum=faceNum) | |
167 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
168 | + endCardNo=endCardNo, cardFace=cardFace) | |
169 | + | |
170 | + # 出库 ---> 卡片类别获取 | |
171 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
172 | + # 获取用户信息 | |
173 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode, | |
174 | + keyword=self.applyUserCode) | |
175 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
176 | + # 出库 ---> 卡面信息获取 | |
177 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
178 | + faceNum=faceNum) | |
179 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
180 | + for cardNo in range(startCardNo, endCardNo + 1): | |
181 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
182 | + cardNo=cardNo) | |
183 | + assert cardState.json()["code"] == "200", "卡片面校验不通过" | |
184 | + assert cardFace == cardFaceB, "卡面信息断言失败" | |
185 | + # 出库 ---> 卡片出库 | |
186 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
187 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
188 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
189 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
190 | + applyUserCode=self.applyUserCode, amount=amount) | |
191 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
192 | + | |
193 | + # 根据领取人获取最新的出库记录 | |
194 | + startDate = str(time.strftime("%Y-%m-%d 00:00:00", time.localtime())) | |
195 | + endDate = str(time.strftime("%Y-%m-%d 23:59:59", time.localtime())) | |
196 | + listRes = cSO.getOutPage(cardHost=self.cardHost, webHeaders=self.webHeaders,startDate=startDate,endDate=endDate) | |
197 | + pageNum = math.ceil(listRes.json()["total"]/10) | |
198 | + listRes = cSO.getOutPage(cardHost=self.cardHost, webHeaders=self.webHeaders, startDate=startDate, | |
199 | + endDate=endDate,page=pageNum) | |
200 | + dateList = [i["applyTime"] for i in listRes.json()["rows"]] | |
201 | + assert [] == [i for i in dateList if i < startDate or i > endDate], "查询结果错误,查询出非当天的入库信息" | |
202 | + | |
203 | + def test_searchAllOption(self): | |
204 | + # 先添加入库卡片 | |
205 | + faceNum = 3 | |
206 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
207 | + endCardNo = startCardNo + 1 | |
208 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
209 | + faceNum=faceNum) | |
210 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
211 | + endCardNo=endCardNo, cardFace=cardFace) | |
212 | + | |
213 | + # 出库 ---> 卡片类别获取 | |
214 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
215 | + # 获取用户信息 | |
216 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode, | |
217 | + keyword=self.applyUserCode) | |
218 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
219 | + # 出库 ---> 卡面信息获取 | |
220 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
221 | + faceNum=faceNum) | |
222 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
223 | + for cardNo in range(startCardNo, endCardNo + 1): | |
224 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
225 | + cardNo=cardNo) | |
226 | + assert cardState.json()["code"] == "200", "卡片面校验不通过" | |
227 | + assert cardFace == cardFaceB, "卡面信息断言失败" | |
228 | + # 出库 ---> 卡片出库 | |
229 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
230 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
231 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
232 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
233 | + applyUserCode=self.applyUserCode, amount=amount) | |
234 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
235 | + | |
236 | + # 根据领取人获取最新的出库记录 | |
237 | + startDate = str(time.strftime("%Y-%m-%d 00:00:00", time.localtime())) | |
238 | + endDate = str(time.strftime("%Y-%m-%d 23:59:59", time.localtime())) | |
239 | + # 根据领取人获取最新的出库记录 | |
240 | + listRes = cSO.getOutPage(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNo=startCardNo,startDate=startDate,endDate=endDate,applyUserName=self.applyUserName, | |
241 | + applyUserId=self.applyUserId) | |
242 | + assert 1 == len([i for i in listRes.json()["rows"]]), "查询结果不唯一,查询失败" | |
243 | + firstId = listRes.json()["rows"][0]["id"] | |
244 | + resDetail = cSO.getOutListDetail(cardHost=self.cardHost, webHeaders=self.webHeaders, id=firstId) | |
245 | + outCardDetail = re.findall("<ul><li>(.*?)</li></ul>", resDetail.text) | |
246 | + assert str(startCardNo) in outCardDetail, "查询失败" | |
247 | + | |
248 | + def test_checkCardState(self): | |
249 | + # 先添加入库卡片 | |
250 | + faceNum = 3 | |
251 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
252 | + endCardNo = startCardNo + 1 | |
253 | + cardFace = cSI.returnFaceValue(resCardFace=cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
254 | + faceNum=faceNum) | |
255 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
256 | + endCardNo=endCardNo, cardFace=cardFace) | |
257 | + | |
258 | + # 出库 ---> 卡片类别获取 | |
259 | + cardTypeRes = cSO.getCardType(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
260 | + # 获取用户信息 | |
261 | + userInfo = cSO.getUserInfo(cardHost=self.cardHost, webHeaders=self.webHeaders, name=self.applyUserCode, | |
262 | + keyword=self.applyUserCode) | |
263 | + assert userInfo.json()["data"][0]["id"] == self.applyUserId, "获取到的用户信息与实际用户信息不匹配" | |
264 | + # 出库 ---> 卡面信息获取 | |
265 | + cardFaceB = cSI.returnFaceValue(resCardFace=cSO.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders), | |
266 | + faceNum=faceNum) | |
267 | + # 出库 ---> 卡片入库卡面与当前卡面对比 | |
268 | + for cardNo in range(startCardNo, endCardNo + 1): | |
269 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
270 | + cardNo=cardNo) | |
271 | + assert cardState.json()["code"] == "200", "卡片面校验不通过" | |
272 | + assert cardFace == cardFaceB, "卡面信息断言失败" | |
273 | + # 出库 ---> 卡片出库 | |
274 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
275 | + amount = len([i for i in range(startCardNo, endCardNo + 1)]) | |
276 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
277 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
278 | + applyUserCode=self.applyUserCode, amount=amount) | |
279 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
280 | + | |
281 | + # 已出库的卡在出库页面进行状态校验 | |
282 | + for cardNo in range(startCardNo, endCardNo + 1): | |
283 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
284 | + cardNo=cardNo) | |
285 | + assert cardState.json()["message"] == "该卡状态为[激活],不能进行此操作!", "提示信息错误" | |
286 | + assert cardState.json()["code"] == "5000", "出库失败" | |
287 | + | |
288 | + # 未出库的卡校验 | |
289 | + cardState = cSO.checkCardForOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardFace=cardFaceB, | |
290 | + cardNo=startCardNo+2) | |
291 | + assert cardState.json()["message"] == "该卡未入库!", "提示信息错误" | |
292 | + assert cardState.json()["code"] == "10000", "未出库的卡片状态校验失败" | |
293 | + | |
294 | + # 已开卡的状态校验,暂缺 | |
295 | + | |
296 | + | ... | ... |
testCase/cardSystem/test_pwdModify.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/6/11 14:35 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_pwdModify.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + | |
11 | +""" | |
12 | + | |
13 | +import unittest | |
14 | +import random | |
15 | +import time | |
16 | +import commons.api.cardStorageIn as cSI | |
17 | +import commons.api.returnCard as reC | |
18 | +import commons.api.cardStorageOut as cSO | |
19 | +import commons.api.openCard as oMC | |
20 | +import commons.api.operatePwd as operatePwd | |
21 | +from commons.scripts.readConf import readConfig | |
22 | +from commons.api.doLogin import doLogin | |
23 | + | |
24 | +class test_pwdModify(unittest.TestCase): | |
25 | + def setUp(self) -> None: | |
26 | + pass | |
27 | + | |
28 | + def tearDown(self) -> None: | |
29 | + pass | |
30 | + | |
31 | + @classmethod | |
32 | + def setUpClass(cls) -> None: | |
33 | + # 配置信息获取 | |
34 | + readC = readConfig() | |
35 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
36 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
37 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
38 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
39 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
40 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
41 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
42 | + # 登录信息获取 | |
43 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
44 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
45 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
46 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
47 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
48 | + | |
49 | + @classmethod | |
50 | + def tearDownClass(cls) -> None: | |
51 | + pass | |
52 | + | |
53 | + def producePwd(self): | |
54 | + pwd = "".join(random.sample("0123456789", 6)) | |
55 | + return pwd | |
56 | + | |
57 | + def test_pwdModify(self): | |
58 | + """修改密码正向流程测试""" | |
59 | + # 主卡入库-出库-开卡 | |
60 | + faceNum = 1 | |
61 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
62 | + endCardNo = startCardNo + 2 | |
63 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
64 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
65 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
66 | + endCardNo=endCardNo, cardFace=cardFace) | |
67 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
68 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
69 | + print(cardNos) | |
70 | + amount = 2 | |
71 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
72 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
73 | + applyUserCode=self.applyUserCode, amount=amount) | |
74 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
75 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
76 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
77 | + print("resFirstOpen", resFirstOpen.json()) | |
78 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
79 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
80 | + # 副卡入库-出库-开卡 | |
81 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
82 | + endSlaveCardNo = startSlaveCardNo + 2 | |
83 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
84 | + endCardNo=endSlaveCardNo, cardType=20) | |
85 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
86 | + cardNo=startSlaveCardNo, | |
87 | + cardType=20) | |
88 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
89 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
90 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
91 | + amount = 2 | |
92 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
93 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
94 | + applyUserCode=self.applyUserCode, amount=amount) | |
95 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
96 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
97 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
98 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
99 | + parentLoginPwd=self.loginPwd) | |
100 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
101 | + # 开卡结束-获取卡片客户信息 | |
102 | + resSimpleInfo = operatePwd.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
103 | + cardNo=startCardNo) | |
104 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
105 | + resSimpleInfo = operatePwd.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
106 | + cardNo=startSlaveCardNo) | |
107 | + customerIdSlaveCard, accountIdSlaveCard = resSimpleInfo.json()["data"]["accountInfo"]["customerId"], \ | |
108 | + resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
109 | + # 以上为测试数据准备 | |
110 | + | |
111 | + """开始测试""" | |
112 | + | |
113 | + # 主卡正常修改密码 | |
114 | + newPwd = self.producePwd() | |
115 | + print("newPwd",newPwd) | |
116 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,oldLoginPwd=self.loginPwd, | |
117 | + loginPwd=newPwd,secondLoginPwd=newPwd,cardNo=startCardNo,accountId=accountId,customerId=customerId) | |
118 | + # print(resRLP.json()) | |
119 | + assert "200" == resRLP.json()["code"],"主卡正常修改密码测试不通过" | |
120 | + assert "OK" == resRLP.json()["message"], "主卡正常修改密码测试不通过" | |
121 | + | |
122 | + # 副卡正常修改密码 | |
123 | + newPwdSlave = self.producePwd() | |
124 | + # print("newPwdSlave",newPwdSlave) | |
125 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,oldLoginPwd=self.loginPwd,loginPwd=newPwdSlave, | |
126 | + secondLoginPwd=newPwdSlave,cardNo=startSlaveCardNo,accountId=accountIdSlaveCard,customerId=customerIdSlaveCard) | |
127 | + print(resRLP.json()) | |
128 | + assert "200" == resRLP.json()["code"],"副卡正常修改密码测试不通过" | |
129 | + assert "OK" == resRLP.json()["message"], "副卡正常修改密码测试不通过" | |
130 | + | |
131 | + """测试完成""" | |
132 | + | |
133 | + # 副卡退卡 | |
134 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo,loginPwd=newPwdSlave) | |
135 | + assert "200" == resSlave.json()["code"],"副卡使用新密码退卡成功,密码修改成功" | |
136 | + assert "OK" == resSlave.json()["message"], "副卡使用新密码退卡成功,密码修改成功" | |
137 | + # 主卡退卡 | |
138 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo,loginPwd=newPwd) | |
139 | + assert "200" == res.json()["code"],"主卡使用新密码退卡成功,密码修改成功" | |
140 | + assert "OK" == res.json()["message"], "主卡使用新密码退卡成功,密码修改成功" | |
141 | + | |
142 | + def test_pwdModifyError(self): | |
143 | + """修改密码异常流程""" | |
144 | + # 主卡入库-出库-开卡 | |
145 | + faceNum = 1 | |
146 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
147 | + endCardNo = startCardNo + 2 | |
148 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
149 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
150 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
151 | + endCardNo=endCardNo, cardFace=cardFace) | |
152 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
153 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
154 | + print(cardNos) | |
155 | + amount = 2 | |
156 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
157 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
158 | + applyUserCode=self.applyUserCode, amount=amount) | |
159 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
160 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
161 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
162 | + print("resFirstOpen", resFirstOpen.json()) | |
163 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
164 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
165 | + # 副卡入库-出库-开卡 | |
166 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
167 | + endSlaveCardNo = startSlaveCardNo + 2 | |
168 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
169 | + endCardNo=endSlaveCardNo, cardType=20) | |
170 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
171 | + cardNo=startSlaveCardNo, | |
172 | + cardType=20) | |
173 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
174 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
175 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
176 | + amount = 2 | |
177 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
178 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
179 | + applyUserCode=self.applyUserCode, amount=amount) | |
180 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
181 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
182 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
183 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
184 | + parentLoginPwd=self.loginPwd) | |
185 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
186 | + # 开卡结束-获取卡片客户信息 | |
187 | + resSimpleInfo = operatePwd.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
188 | + cardNo=startCardNo) | |
189 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
190 | + resSimpleInfo = operatePwd.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
191 | + cardNo=startSlaveCardNo) | |
192 | + customerIdSlaveCard, accountIdSlaveCard = resSimpleInfo.json()["data"]["accountInfo"]["customerId"], \ | |
193 | + resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
194 | + # 以上为测试数据准备 | |
195 | + | |
196 | + """开始测试""" | |
197 | + | |
198 | + # 副卡原密码错误修改失败 | |
199 | + newPwdSlave = self.producePwd() | |
200 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, oldLoginPwd="909090", | |
201 | + loginPwd=newPwdSlave, | |
202 | + secondLoginPwd=newPwdSlave, cardNo=startSlaveCardNo, accountId=accountIdSlaveCard, | |
203 | + customerId=customerIdSlaveCard) | |
204 | + assert "10001" == resRLP.json()["code"], "副卡原密码错误修改失败测试不通过" | |
205 | + assert "密码输入有误" == resRLP.json()["message"], "副卡原密码错误修改失败测试不通过" | |
206 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
207 | + cardNo=startSlaveCardNo, loginPwd=newPwdSlave) | |
208 | + assert "10001" == resSlave.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
209 | + # 主卡原密码错误修改失败 | |
210 | + newPwd = self.producePwd() | |
211 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,oldLoginPwd="909090", | |
212 | + loginPwd=newPwd,secondLoginPwd=newPwd,cardNo=startCardNo,accountId=accountId,customerId=customerId) | |
213 | + assert "10001" == resRLP.json()["code"],"主卡原密码错误修改失败测试不通过" | |
214 | + assert "密码输入有误" == resRLP.json()["message"], "主卡原密码错误修改失败测试不通过" | |
215 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
216 | + loginPwd=newPwd) | |
217 | + assert "10001" == res.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
218 | + | |
219 | + # 两次输入的新密码不一致时修改密码失败 | |
220 | + newPwdSlave = self.producePwd() | |
221 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, oldLoginPwd=self.loginPwd, | |
222 | + loginPwd="909090",secondLoginPwd=newPwdSlave, cardNo=startSlaveCardNo, | |
223 | + accountId=accountIdSlaveCard, customerId=customerIdSlaveCard) | |
224 | + print(resRLP.json()) | |
225 | + assert "2000" == resRLP.json()["code"], "副卡两次输入的新密码不一致时修改密码失败测试不通过" | |
226 | + assert "两次输入密码不匹配" == resRLP.json()["message"], "副卡两次输入的新密码不一致时修改密码失败测试不通过" | |
227 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
228 | + cardNo=startSlaveCardNo, loginPwd=newPwdSlave) | |
229 | + assert "10001" == resSlave.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
230 | + # 主卡原密码错误修改失败 | |
231 | + newPwd = self.producePwd() | |
232 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, oldLoginPwd=self.loginPwd, | |
233 | + loginPwd="909090", secondLoginPwd=newPwd, cardNo=startCardNo, accountId=accountId, | |
234 | + customerId=customerId) | |
235 | + print(resRLP.json()) | |
236 | + assert "2000" == resRLP.json()["code"], "主卡两次输入的新密码不一致时修改密码失败测试不通过" | |
237 | + assert "两次输入密码不匹配" == resRLP.json()["message"], "主卡两次输入的新密码不一致时修改密码失败测试不通过" | |
238 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
239 | + loginPwd=newPwd) | |
240 | + assert "10001" == res.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
241 | + | |
242 | + # 第一个密码输入长度不满足六位时修改失败 | |
243 | + newPwdSlave = self.producePwd() | |
244 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, oldLoginPwd=self.loginPwd, | |
245 | + loginPwd="90909",secondLoginPwd=newPwdSlave, cardNo=startSlaveCardNo, | |
246 | + accountId=accountIdSlaveCard, customerId=customerIdSlaveCard) | |
247 | + print(resRLP.json()) | |
248 | + assert "1000" == resRLP.json()["code"], "副卡第一个密码输入长度不满足六位时修改失败测试不通过" | |
249 | + assert "密码必须6位" == resRLP.json()["message"], "副卡第一个密码输入长度不满足六位时修改失败测试不通过" | |
250 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
251 | + cardNo=startSlaveCardNo, loginPwd=newPwdSlave) | |
252 | + assert "10001" == resSlave.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
253 | + # 主卡原密码错误修改失败 | |
254 | + newPwd = self.producePwd() | |
255 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, oldLoginPwd=self.loginPwd, | |
256 | + loginPwd="90909", secondLoginPwd=newPwd, cardNo=startCardNo, accountId=accountId, | |
257 | + customerId=customerId) | |
258 | + print(resRLP.json()) | |
259 | + assert "1000" == resRLP.json()["code"], "主卡第一个密码输入长度不满足六位时修改失败测试不通过" | |
260 | + assert "密码必须6位" == resRLP.json()["message"], "主卡第一个密码输入长度不满足六位时修改失败测试不通过" | |
261 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
262 | + loginPwd=newPwd) | |
263 | + assert "10001" == res.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
264 | + | |
265 | + # 第二个密码输入长度不满足六位时修改失败 | |
266 | + newPwdSlave = self.producePwd() | |
267 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
268 | + oldLoginPwd=self.loginPwd, | |
269 | + loginPwd=newPwdSlave, secondLoginPwd="90909", cardNo=startSlaveCardNo, | |
270 | + accountId=accountIdSlaveCard, customerId=customerIdSlaveCard) | |
271 | + print(resRLP.json()) | |
272 | + assert "1000" == resRLP.json()["code"], "副卡第二个密码输入长度不满足六位时修改失败测试不通过" | |
273 | + assert "确认密码密码必须6位" == resRLP.json()["message"], "副卡第二个密码输入长度不满足六位时修改失败测试不通过" | |
274 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
275 | + cardNo=startSlaveCardNo, loginPwd=newPwdSlave) | |
276 | + assert "10001" == resSlave.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
277 | + # 主卡原密码错误修改失败 | |
278 | + newPwd = self.producePwd() | |
279 | + resRLP = operatePwd.modifyLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
280 | + oldLoginPwd=self.loginPwd, | |
281 | + loginPwd=newPwd, secondLoginPwd="90909", cardNo=startCardNo, accountId=accountId, | |
282 | + customerId=customerId) | |
283 | + print(resRLP.json()) | |
284 | + assert "1000" == resRLP.json()["code"], "主卡第二个密码输入长度不满足六位时修改失败测试不通过" | |
285 | + assert "确认密码密码必须6位" == resRLP.json()["message"], "主卡第二个密码输入长度不满足六位时修改失败测试不通过" | |
286 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo, | |
287 | + loginPwd=newPwd) | |
288 | + assert "10001" == res.json()["code"], "修改密码失败后不能使用新密码退卡,测试不通过" | |
289 | + | |
290 | + """测试完成""" | |
291 | + | |
292 | + # # 副卡退卡 | |
293 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
294 | + reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
0 | 295 | \ No newline at end of file | ... | ... |
testCase/cardSystem/test_pwdReset.py
0 → 100644
1 | +#coding=utf-8 | |
2 | + | |
3 | +# @Time : 2021/6/11 14:36 | |
4 | +# @Author : Ljq | |
5 | +# @File : test_pwdReset.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | + | |
9 | +""" | |
10 | + 重置密码功能接口测试 | |
11 | +""" | |
12 | + | |
13 | + | |
14 | +import unittest | |
15 | +import random | |
16 | +import time | |
17 | +import commons.api.cardStorageIn as cSI | |
18 | +import commons.api.returnCard as reC | |
19 | +import commons.api.cardStorageOut as cSO | |
20 | +import commons.api.openCard as oMC | |
21 | +import commons.api.operatePwd as oP | |
22 | +from commons.scripts.readConf import readConfig | |
23 | +from commons.api.doLogin import doLogin | |
24 | + | |
25 | +class test_pwdModify(unittest.TestCase): | |
26 | + def setUp(self) -> None: | |
27 | + pass | |
28 | + | |
29 | + def tearDown(self) -> None: | |
30 | + pass | |
31 | + | |
32 | + @classmethod | |
33 | + def setUpClass(cls) -> None: | |
34 | + # 配置信息获取 | |
35 | + readC = readConfig() | |
36 | + cls.cardHost = readC.returnOptionsItems("host", "cardHost") | |
37 | + cls.gatewayHost = readC.returnOptionsItems("host", "gatewayHost") | |
38 | + cls.cCNum = readC.returnOptionsItems("testInfo","cCNum") | |
39 | + cls.cCNumB = readC.returnOptionsItems("testInfo", "cCNumB") | |
40 | + cls.cardNum = readC.returnOptionsItems("testInfo", "cardNum") | |
41 | + cls.cardNumRe = readC.returnOptionsItems("testInfo", "cardNumRe") | |
42 | + cls.loginPwd = readC.returnOptionsItems("testInfo", "loginPwd") | |
43 | + # 登录信息获取 | |
44 | + cls.webHeaders, cls.clientHeaders, cls.userInfo = doLogin().loginUser() | |
45 | + cls.applyUserName = cls.userInfo["data"]["user"]["realName"] | |
46 | + cls.applyUserId = cls.userInfo["data"]["user"]["id"] | |
47 | + cls.applyUserCode = cls.userInfo["data"]["user"]["userName"] | |
48 | + cls.firmId = cls.userInfo["data"]["user"]["firmId"] | |
49 | + | |
50 | + @classmethod | |
51 | + def tearDownClass(cls) -> None: | |
52 | + pass | |
53 | + | |
54 | + def producePwd(self): | |
55 | + pwd = "".join(random.sample("0123456789", 6)) | |
56 | + return pwd | |
57 | + | |
58 | + def test_pwdModify(self): | |
59 | + """修改密码正向流程测试""" | |
60 | + # 主卡入库-出库-开卡 | |
61 | + faceNum = 1 | |
62 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
63 | + endCardNo = startCardNo + 2 | |
64 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
65 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
66 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
67 | + endCardNo=endCardNo, cardFace=cardFace) | |
68 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
69 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
70 | + print(cardNos) | |
71 | + amount = 2 | |
72 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
73 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
74 | + applyUserCode=self.applyUserCode, amount=amount) | |
75 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
76 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
77 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
78 | + print("resFirstOpen", resFirstOpen.json()) | |
79 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
80 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
81 | + # 副卡入库-出库-开卡 | |
82 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
83 | + endSlaveCardNo = startSlaveCardNo + 2 | |
84 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
85 | + endCardNo=endSlaveCardNo, cardType=20) | |
86 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
87 | + cardNo=startSlaveCardNo, | |
88 | + cardType=20) | |
89 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
90 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
91 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
92 | + amount = 2 | |
93 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
94 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
95 | + applyUserCode=self.applyUserCode, amount=amount) | |
96 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
97 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
98 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
99 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
100 | + parentLoginPwd=self.loginPwd) | |
101 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
102 | + # 开卡结束-获取卡片客户信息 | |
103 | + resSimpleInfo = oP.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
104 | + cardNo=startCardNo) | |
105 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
106 | + resSimpleInfo = oP.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
107 | + cardNo=startSlaveCardNo) | |
108 | + customerIdSlaveCard, accountIdSlaveCard = resSimpleInfo.json()["data"]["accountInfo"]["customerId"], \ | |
109 | + resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
110 | + # 以上为测试数据准备 | |
111 | + | |
112 | + """开始测试""" | |
113 | + | |
114 | + # 主卡正常重置密码 | |
115 | + newPwd = self.producePwd() | |
116 | + print("newPwd",newPwd) | |
117 | + resRLP = oP.resetLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,loginPwd=newPwd, | |
118 | + secondLoginPwd=newPwd,cardNo=startCardNo,accountId=accountId,customerId=customerId) | |
119 | + assert "200" == resRLP.json()["code"],"主卡正常重置密码测试不通过" | |
120 | + assert "OK" == resRLP.json()["message"], "主卡正常重置密码测试不通过" | |
121 | + | |
122 | + # 副卡正常重置密码 | |
123 | + newPwdSlave = self.producePwd() | |
124 | + print("newPwdSlave",newPwdSlave) | |
125 | + resRLP = oP.resetLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,loginPwd=newPwdSlave, | |
126 | + secondLoginPwd=newPwdSlave,cardNo=startSlaveCardNo,accountId=accountIdSlaveCard,customerId=customerIdSlaveCard) | |
127 | + assert "200" == resRLP.json()["code"],"副卡正常重置密码测试不通过" | |
128 | + assert "OK" == resRLP.json()["message"], "副卡正常重置密码测试不通过" | |
129 | + | |
130 | + """测试完成""" | |
131 | + | |
132 | + # 副卡退卡 | |
133 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo,loginPwd=newPwdSlave) | |
134 | + assert "200" == resSlave.json()["code"],"副卡使用新密码退卡成功,密码重置成功" | |
135 | + assert "OK" == resSlave.json()["message"], "副卡使用新密码退卡成功,密码重置成功" | |
136 | + # 主卡退卡 | |
137 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo,loginPwd=newPwd) | |
138 | + assert "200" == res.json()["code"],"主卡使用新密码退卡成功,密码重置成功" | |
139 | + assert "OK" == res.json()["message"], "主卡使用新密码退卡成功,密码重置成功" | |
140 | + | |
141 | + def test_pwdModifyError(self): | |
142 | + """修改密码异常流程测试 部分用例后续添加""" | |
143 | + # 主卡入库-出库-开卡 | |
144 | + faceNum = 1 | |
145 | + startCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
146 | + endCardNo = startCardNo + 2 | |
147 | + resCardFace = cSI.getCardFace(cardHost=self.cardHost, webHeaders=self.webHeaders) | |
148 | + cardFace = cSI.returnFaceValue(resCardFace=resCardFace, faceNum=faceNum) | |
149 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startCardNo, | |
150 | + endCardNo=endCardNo, cardFace=cardFace) | |
151 | + print("resSavaCard.json() ->", resSavaCard.json()) | |
152 | + cardNos = str(startCardNo) + "," + str(endCardNo) | |
153 | + print(cardNos) | |
154 | + amount = 2 | |
155 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=cardNos, | |
156 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
157 | + applyUserCode=self.applyUserCode, amount=amount) | |
158 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
159 | + resFirstOpen = oMC.openMasterCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
160 | + cCNum=self.cCNum, cardNo=startCardNo, applyUserName=self.applyUserName) | |
161 | + print("resFirstOpen", resFirstOpen.json()) | |
162 | + assert "200" == resFirstOpen.json()["code"], "第一次开卡,开卡失败" | |
163 | + assert "data" in resFirstOpen.json(), "第一次开卡,开卡失败" | |
164 | + # 副卡入库-出库-开卡 | |
165 | + startSlaveCardNo = int(time.strftime("%y%m%d%H%M%S", time.localtime())) | |
166 | + endSlaveCardNo = startSlaveCardNo + 2 | |
167 | + resSavaCard = cSI.savaCard(cardHost=self.cardHost, webHeaders=self.webHeaders, startCardNo=startSlaveCardNo, | |
168 | + endCardNo=endSlaveCardNo, cardType=20) | |
169 | + res = oMC.checkNewCardNo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
170 | + cardNo=startSlaveCardNo, | |
171 | + cardType=20) | |
172 | + assert "20000" == res.json()["code"], "使用已存在未出库的卡片进行校验校验失败" | |
173 | + assert "该卡状态为[未激活],不能开卡!" == res.json()["message"], "message信息与预期信息不匹配" | |
174 | + slaveCardNos = str(startSlaveCardNo) + "," + str(endSlaveCardNo) | |
175 | + amount = 2 | |
176 | + outCardRes = cSO.cardAddOut(cardHost=self.cardHost, webHeaders=self.webHeaders, cardNos=slaveCardNos, | |
177 | + applyUserName=self.applyUserName, applyUserId=self.applyUserId, | |
178 | + applyUserCode=self.applyUserCode, amount=amount) | |
179 | + assert outCardRes.json()["code"] == "200", "出库失败" | |
180 | + resOpenSlaveCard = oMC.openSlaveCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
181 | + cardNo=startCardNo, slaveCardNo=startSlaveCardNo, | |
182 | + loginPwd=self.loginPwd, applyUserName=self.applyUserName, | |
183 | + parentLoginPwd=self.loginPwd) | |
184 | + assert "200" == resOpenSlaveCard.json()["code"], "开卡测试失败" | |
185 | + # 开卡结束-获取卡片客户信息 | |
186 | + resSimpleInfo = oP.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
187 | + cardNo=startCardNo) | |
188 | + customerId,accountId = resSimpleInfo.json()["data"]["accountInfo"]["customerId"],resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
189 | + resSimpleInfo = oP.getSimpleInfo(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
190 | + cardNo=startSlaveCardNo) | |
191 | + customerIdSlaveCard, accountIdSlaveCard = resSimpleInfo.json()["data"]["accountInfo"]["customerId"], \ | |
192 | + resSimpleInfo.json()["data"]["accountInfo"]["accountId"] | |
193 | + # 以上为测试数据准备 | |
194 | + | |
195 | + """开始测试""" | |
196 | + | |
197 | + # 副卡使用两个不一致的密码进行重置时重置失败 | |
198 | + newPwdSlave = self.producePwd() | |
199 | + print("newPwdSlave", newPwdSlave) | |
200 | + resRLP = oP.resetLoginPwd(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, loginPwd="123456", | |
201 | + secondLoginPwd=newPwdSlave, cardNo=startSlaveCardNo, accountId=accountIdSlaveCard, | |
202 | + customerId=customerIdSlaveCard) | |
203 | + print(resRLP.json()) | |
204 | + assert "2000" == resRLP.json()["code"], "副卡正常重置密码测试不通过" | |
205 | + assert "两次密码输入不一致,请重新输入" == resRLP.json()["message"], "副卡正常重置密码测试不通过" | |
206 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, | |
207 | + cardNo=startSlaveCardNo, loginPwd=newPwdSlave) | |
208 | + assert "10001" == resSlave.json()["code"], "重置密码失败后不能使用新密码退卡,测试不通过" | |
209 | + | |
210 | + | |
211 | + # 主卡使用两个不一致的密码进行重置时重置失败 | |
212 | + newPwd = self.producePwd() | |
213 | + print("newPwd",newPwd) | |
214 | + resRLP = oP.resetLoginPwd(gatewayHost=self.gatewayHost,clientHeaders=self.clientHeaders,loginPwd="123456", | |
215 | + secondLoginPwd=newPwd,cardNo=startCardNo,accountId=accountId,customerId=customerId) | |
216 | + print(resRLP.json()) | |
217 | + assert "2000" == resRLP.json()["code"],"主卡正常重置密码测试不通过" | |
218 | + assert "两次密码输入不一致,请重新输入" == resRLP.json()["message"], "主卡正常重置密码测试不通过" | |
219 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo,loginPwd=newPwd) | |
220 | + assert "10001" == res.json()["code"],"重置密码失败后不能使用新密码退卡,测试不通过" | |
221 | + | |
222 | + # 挂失的卡片不可以重置密码 | |
223 | + | |
224 | + # 卡务锁定的卡片不可以重置密码 | |
225 | + | |
226 | + # 账号冻结的卡片不可以重置密码 | |
227 | + | |
228 | + # 资金账号锁定的卡片可以重置密码 | |
229 | + | |
230 | + """测试完成""" | |
231 | + | |
232 | + # 副卡退卡 | |
233 | + resSlave = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startSlaveCardNo) | |
234 | + # assert "200" == resSlave.json()["code"],"副卡使用新密码退卡成功,密码重置成功" | |
235 | + # assert "OK" == resSlave.json()["message"], "副卡使用新密码退卡成功,密码重置成功" | |
236 | + # 主卡退卡 | |
237 | + res = reC.returnCardDef(gatewayHost=self.gatewayHost, clientHeaders=self.clientHeaders, cardNo=startCardNo) | |
238 | + # assert "200" == res.json()["code"],"主卡使用新密码退卡成功,密码重置成功" | |
239 | + # assert "OK" == res.json()["message"], "主卡使用新密码退卡成功,密码重置成功" | |
240 | + | |
241 | + | ... | ... |