在接口自动化测试框架中,基础模块方法的封装是非常重要的。它可以帮助测试人员快速编写、运行和管理测试用例,提高测试效率和可维护性。在本文中,我们将使用Python语言来实现基础模块方法的封装,并提供示例代码。
视频教程:三天搞定python接口自动化测试框架项目实战全套教程【高启强推荐】_哔哩哔哩_bilibili
- 封装请求方法
在接口自动化测试中,我们需要经常发送HTTP请求。为了方便测试人员的使用,我们可以将请求方法封装成一个类,并提供常用的请求方法。例如,我们可以定义一个名为BaseRequest的类,并提供以下方法:
import requests
class BaseRequest:
def __init__(self):
self.session = requests.session()
def get(self, url, headers=None, params=None):
resp = self.session.get(url, headers=headers, params=params)
return resp
def post(self, url, headers=None, data=None, json=None):
resp = self.session.post(url, headers=headers, data=data, json=json)
return resp
def put(self, url, headers=None, data=None, json=None):
resp = self.session.put(url, headers=headers, data=data, json=json)
return resp
def delete(self, url, headers=None, data=None, json=None):
resp = self.session.delete(url, headers=headers, data=data, json=json)
return resp
在上述代码中,我们使用了requests库来发送HTTP请求。我们定义了一个BaseRequest类,并提供了get、post、put和delete等请求方法。我们还使用了requests库提供的session功能,可以方便地共享cookies和session信息。
- 封装响应方法
在接口自动化测试中,我们需要对接口返回的响应进行处理。为了方便测试人员的使用,我们可以将响应方法封装成一个类,并提供常用的响应方法。例如,我们可以定义一个名为BaseResponse的类,并提供以下方法:
class BaseResponse:
def __init__(self, response):
self.response = response
def json(self):
return self.response.json()
def text(self):
return self.response.text
def status_code(self):
return self.response.status_code
def headers(self):
return self.response.headers
在上述代码中,我们定义了一个BaseResponse类,并提供了json、text、status_code和headers等响应方法。我们使用了传入的响应对象,可以方便地对其进行处理。
- 封装断言方法
在接口自动化测试中,断言是非常重要的一环。我们需要对接口返回的数据进行判断,判断其是否符合预期。为了方便测试人员的使用,我们可以将断言方法封装成一个类,并提供常用的断言方法。例如,我们可以定义一个名为BaseAssert的类,并提供以下方法:
class BaseAssert:
def assert_equal(self, actual, expected, msg=None):
"""
断言实际值与期望值相等
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert actual == expected, msg or f"actual: {actual}, expected: {expected}"
def assert_not_equal(self, actual, expected, msg=None):
"""
断言实际值与期望值不相等
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert actual != expected, msg or f"actual: {actual}, expected: {expected}"
def assert_true(self, actual, msg=None):
"""
断言实际值为True
:param actual: 实际值
:param msg: 错误信息
"""
assert actual, msg or f"actual: {actual}, expected: True"
def assert_false(self, actual, msg=None):
"""
断言实际值为False
:param actual: 实际值
:param msg: 错误信息
"""
assert not actual, msg or f"actual: {actual}, expected: False"
def assert_in(self, actual, expected, msg=None):
"""
断言期望值在实际值中
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert expected in actual, msg or f"{expected} not in {actual}"
def assert_not_in(self, actual, expected, msg=None):
"""
断言期望值不在实际值中
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert expected not in actual, msg or f"{expected} in {actual}"
def assert_is(self, actual, expected, msg=None):
"""
断言实际值与期望值为同一对象
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert actual is expected, msg or f"actual: {actual}, expected: {expected}"
def assert_is_not(self, actual, expected, msg=None):
"""
断言实际值与期望值不为同一对象
:param actual: 实际值
:param expected: 期望值
:param msg: 错误信息
"""
assert actual is not expected, msg or f"actual: {actual}, expected: {expected}"
def assert_is_none(self, actual, msg=None):
"""
断言实际值为None
:param actual: 实际值
:param msg: 错误信息
"""
assert actual
【软件测试到测试开发全测试生涯学习路线】
以及全套配套的学习资料,视频教程....
:【以下路线图太详细了只能展开部分,具体的可以在文章末尾扫描小卡片备注000领取哦】
1:自动化测试进阶系列:
2:全栈性能测试,监控以及调优
3:全栈测试开发平台实战
4:全栈安全测试渗透测试
5:devops持续集成部署
6:全栈接口测试工具进阶
7:跨平台自动化测试工具
8:大厂简历,真题,录音
9:全栈系列课企业项目实战
总结:下方是作者从功能测试到自动化测试拿到年薪34w,花费三年打造的软件测试到测试开发全职业生涯资料包,有需要的话可以点击文章末尾的小卡片备注000领取哈