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