提高测试效率!构建高效接口自动化测试框架零代码封装的秘诀揭秘

在接口自动化测试框架中,基础模块方法的封装是非常重要的。它可以帮助测试人员快速编写、运行和管理测试用例,提高测试效率和可维护性。在本文中,我们将使用Python语言来实现基础模块方法的封装,并提供示例代码。

视频教程:三天搞定python接口自动化测试框架项目实战全套教程【高启强推荐】_哔哩哔哩_bilibili

  1. 封装请求方法
    在接口自动化测试中,我们需要经常发送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信息。

  1. 封装响应方法
    在接口自动化测试中,我们需要对接口返回的响应进行处理。为了方便测试人员的使用,我们可以将响应方法封装成一个类,并提供常用的响应方法。例如,我们可以定义一个名为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等响应方法。我们使用了传入的响应对象,可以方便地对其进行处理。

  1. 封装断言方法
    在接口自动化测试中,断言是非常重要的一环。我们需要对接口返回的数据进行判断,判断其是否符合预期。为了方便测试人员的使用,我们可以将断言方法封装成一个类,并提供常用的断言方法。例如,我们可以定义一个名为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领取哈

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/129867401