一、关键字驱动--设计框架的常用的思路
封装的作用:
在编程中,封装一个方法(函数)主要有以下几个作用:
1. **代码重用**:通过封装重复使用的代码到一个方法中,你可以在多个地方调用这个方法而不是重写相同的代码。这不仅节省时间,还减少了代码量和维护成本。
2. **模块化**:封装方法可以帮助你将程序分解成较小、管理更容易的部分。每个方法执行一个具体的任务,这样的模块化设计使得代码更加清晰、易于理解和测试。
3. **抽象**:方法封装提供了一个抽象层,使得你可以关注于方法的功能而不是其实现细节。调用者只需要知道方法的输入(参数)、作用和输出(返回值),而不需要了解其内部逻辑。
4. **隐藏实现细节**:封装允许你隐藏功能的实现细节,只暴露必要的接口给外界。这种信息隐藏是面向对象编程中的一个核心概念,有助于保护数据和防止外部代码随意修改内部状态。
5. **易于维护和更新**:当方法的内部实现需要变更时,你可以只在方法内部进行修改,而不需要修改调用该方法的代码,前提是保持接口不变。这使得更新和维护变得更加容易和安全。
6. **参数化和灵活性**:通过参数化,方法可以用于不同的输入值,提供更大的灵活性。这意味着同一个方法可以被用于多种情况,只要传入不同的参数。
7. **促进团队合作**:在团队开发中,封装方法使得不同的开发者可以并行工作在不同的方法上,每个人专注于特定的任务。这种分工合作可以提高开发效率和项目的整体质量。
总之,自己封装方法是编程中的一种基本而重要的实践,它有助于提高代码的质量、可读性、可维护性和可重用性,同时也是面向对象设计原则的一个关键方面。
1、封装get方法
def get(self, url, params=None, **kwargs):
"""
发送get请求
:param url:请求的URL
:param params: 需要拼装在URL当中的参数
:param kwargs: 其它参数,具体参考requests.post()
:return: 响应数据
"""
print(">>>发送GET请求")
return requests.get(url=url, params=params, **kwargs)
2、封装post方法
def post(self, url, data=None, json=None, **kwargs):
"""
发送POST请求
:param url: 请求的URL
:param data: 请求的数据
:param json: 请求数据如果是json可直接使用该参数
:param kwargs: 其它参数,具体参考requests.post()
:return: 响应数据
"""
print(">>>发送POST请求")
return requests.post(url=url, data=data, json=json, **kwargs)
3、封装Jsonpath方法
def get_text(self, response, key, index=0):
"""
基于jsonpath获取数据的关键字:用于提取所需要的内容
:param response: 响应报文,默认为json格式
:param key: jsonpath的表达式
:param index: 获取的下标,默认0
:return:
"""
print(">>>提取响应数据")
# 判断数据类型: 如果是字符串,就给他转字典
if isinstance(response, str):
response = json.loads(response)
value_list = jsonpath.jsonpath(response, key)
return value_list[index]
以上便完成了框架封装的关键字驱动部分
二、框架搭建
1、pytest框架的使用规则
pytest的命名规则
(1)模块名(py文件)必须以test_开头或_test结尾。
(2)测试类(class)必须以Test开头,并且不能带init方法。
(3)测试用例(函数)必须以test_开头。
要做的主要三件事,请求数据,发送请求,断言
导包的顺序
2、配置相关依赖包
调试模式
unitest--适合当前页面调试--左右面板
pytest--不建议当前页面调试
如何设置不同模式
PS:
在conftest里除了fixture(夹具),还有其他的前后置方法