咨询:执行request的test_case,每个case需要等到1分多钟才能发送请求。影响效率,求解。感谢!

各位大佬:
我运行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执行时的资源占用情况吧

都是正常,刚刚用Charles抓包,看到是connect host时间很久。

你的服务器做了限速控制?

服务器没有做控制,换个PC能正常请求。

从你的抓包来看,跟你的代码没关系,就是服务器故意在延迟。你确定在另外一个pc上是用了同样的用例发的嘛?

都是同样的case,在其他人的电脑上就正常的。感觉可能是自己电脑的问题,之前也有过手机连接WiFi正常上网,PC连接WIFI就任何网页无法访问。准备刷个机试试看