API自动化 pytest 常见报错及处理

本文用于记录API自动化使用过程中遇到报错记录及原因分析。

1、pytest.mark.parametrize  参数化报错

Testcase/Test_anchor.py::test_script_findlist: in "parametrize" the number of names (3):
  ['case', 'http', 'expected']
must be equal to the number of values (1):

本次报错原因:parametrize 参数要接收三个参数['case', 'http', 'expected'],入参多加了一个[] 导致三个参数变成了只有一个列表参数--[['case', 'http', 'expected']]

@pytest.mark.parametrize(args_name,args_value)
args_name:参数名,字符串,多个参数中间用逗号隔开
args_value:参数值(列表,元组,字典列表,字典元组)
不符合len(args_name)==len(args_value)就会出现该报错

其他可能报错原因:excel,yaml,csv,mysql中数据读取使用,必须注意读取的参数值是否与参数名数量一致。

2、请求连接超时

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='test-api.xxxxxx.com', port=443): 
Max retries exceeded with url: /host/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000020B2444C9D0>: 
Failed to establish a new connection: [Errno 10060] WSAETIMEDOUT'))

该错误表明在使用requests库时出现了连接错误。具体地,它指示无法建立与目标主机的连接,并且超过了最大重试次数。

这个错误通常是由以下几个原因引起的:

  1. 网络连接问题:可能由于您的网络连接存在问题,导致无法建立与目标主机的连接。您可以尝试使用其他网络或等待网络问题解决后再次尝试。

  2. 目标主机不可达:目标主机(test-api.pokalive.com)可能当前不可用或不可达。您可以尝试使用其他网络或稍后再次尝试。

  3. 代理设置问题:如果您在使用代理服务器,可能是代理设置不正确导致连接问题。您可以检查代理设置是否正确,并尝试禁用代理进行连接。

  4. 防火墙或安全软件的干扰:某些防火墙或安全软件可能会阻止您的请求访问目标主机。您可以尝试禁用防火墙或安全软件,然后再次尝试连接。

  5. 目标主机端口问题:目标主机(test-api.pokalive.com)的端口(443)可能存在问题。您可以确认目标主机的端口是否正确,并检查是否有任何网络配置问题。

本次报错原因:代理设置问题

代理软件--clash for Windows,有一个代理开关,”指定协议(Windows系统)“打开以后,便可以正常的请求外网数据。

猜你喜欢

转载自blog.csdn.net/q_syh/article/details/131438858