各位大佬:
我运行test_case时,需要等待75秒才能向服务端发送请求。特别影响效率。请问是什么导致的呢?
重启mac后,用postman发送同样的请求,能够正常实时发送;然后用pycharm执行脚本,就会每个案例等待75秒发送、接收响应;再用postman发送请求,postman也会等待75秒再请求。
各位大佬:
我运行test_case时,需要等待75秒才能向服务端发送请求。特别影响效率。请问是什么导致的呢?
重启mac后,用postman发送同样的请求,能够正常实时发送;然后用pycharm执行脚本,就会每个案例等待75秒发送、接收响应;再用postman发送请求,postman也会等待75秒再请求。
需要看下代码,具体分析;你可以先看看代码是不是有复杂的逻辑
没有复杂的逻辑。连封装都没怎么做的。代码如下:
api代码:
import json
import requests
from common.method import Method
class Transfer:
apphead = {}
headers = {“Content-Type”: “application/json”}
def transfer(self, amt, payeer, payee, client, type, bankcode, feeseq, channel, flag, ccy, **kwargs):
base_url = "http://smart-payment-sit2.bankbkemobile.co.id/HttpServer"
seq = Method.getLastTime() + Method.generate_random_str()
logid = Method.getLastTime() + Method.generate_random_str()
date = Method.getLastDate()
timestamp = Method.getTimestamp()
data = {
"APP_HEAD": self.apphead,
"BODY": {
"CHANNEL_CODE": channel,
"CLIENT_NO": client,
"PAYER_ACCT": payeer,
"PAYER_NAME": "0828-yapi",
"PAYEE_BANK_CODE": bankcode,
"PAYEE_ACCT": payee,
"PAYEE_NAME": "0828-yapi",
"PAYEE_PHONE_NO": "13333333333",
"TRAN_AMT": amt,
"CCY": ccy,
"TIME_FLAG": flag,
"TRAN_NOTE": "同行转账",
"TRANSFER_TYPE": type,
"POUNDAGE_NO": feeseq
},
"LOCAL_HEAD": {},
"SYS_HEAD": {
"APPR_FLAG": "",
"APPR_USER_ID": "",
"AUTH_FLAG": "N",
"AUTH_PASSWORD": "",
"AUTH_USER_ID": "",
"BRANCH_ID": "999",
"DEST_BRANCH_NO": "",
"MESSAGE_CODE": "180001",
"MESSAGE_TYPE": "1200",
"MODULE_ID": "DP",
"ORG_SYS_ID": "",
"PROGRAM_ID": "PT1303",
"REVERSAL_TRAN_TYPE": "",
"SCENE_ID": "01",
"SEQ_NO": seq,
"SERVER_ID": "127.0.0.1",
"SERVICE_CODE": "PTS",
"SERVICE_SCENE": "01",
"SOURCE_BRANCH_NO": "",
"SOURCE_TYPE": "01",
"TRAN_CODE": "",
"TRAN_DATE": date,
"TRAN_MODE": "ONLINE",
"TRAN_TIMESTAMP": timestamp,
"TRAN_TYPE": "",
"USER_ID": "RLB001",
"USER_LANG": "AMERICAN/ENGLISH",
"WS_ID": "11111111111111133",
"LOG_ID": logid
}
}
data.update(kwargs)
r = requests.post(base_url,
data=json.dumps(data),
headers=self.headers
)
return r
tast_case代码:
import pytest
from common.method import Method
from payment.api.fee import Fee
from payment.api.transfer import Transfer
from payment.api.query import Query
class TestTransfer:
data = Method.yaml_load(“test_transfer.data.yaml”)
def setup(self):
self.fee = Fee()
self.transfer = Transfer()
self.query = Query()
@pytest.mark.parametrize('case, amt, payer, payee, client, type, bankcode, channel, flag, ccy, retcode',
data["test_transfer"])
def test_intransfer(self, case, amt, payer, payee, client, type, bankcode, channel, flag, ccy, retcode):
fe = self.fee.feeaccount(amt, client, type, bankcode)
Method.format(fe)
poundage = fe.json()["BODY"]["POUNDAGE_NO"]
r = self.transfer.transfer(amt, payer, payee, client, type, bankcode, poundage, channel, flag, ccy)
Method.format(r)
assert r.json()["SYS_HEAD"]["RET_CODE"] == retcode
用例执行计算机硬件、响应时间、数据处理时间一条一条排查吧。这个还真看不出什么。
现在的情况是:
用pycharm执行脚本,就会每个案例等待75秒发送、接收响应;但是用postman发送请求正常。
哪位大佬能帮忙瞅瞅?
看看使用pycharm执行时的资源占用情况吧
你的服务器做了限速控制?
服务器没有做控制,换个PC能正常请求。
从你的抓包来看,跟你的代码没关系,就是服务器故意在延迟。你确定在另外一个pc上是用了同样的用例发的嘛?
都是同样的case,在其他人的电脑上就正常的。感觉可能是自己电脑的问题,之前也有过手机连接WiFi正常上网,PC连接WIFI就任何网页无法访问。准备刷个机试试看