总结:这套代码和逻辑是我努力的结果。 若转载请注明。 非常适合在内部从事项目的学生。 小白还可以在接口自动化项目目录下学习公共方法的封装。 如果不需要配置文件,可以使用它。 虽然这种方法是封装的,但是它有一些缺点,并且不需要使用字典。 这发生在正常的命令行解析之前。
这套代码和逻辑是我自己努力的结果。 非常适合做内部项目的学生如果有重印需要标记。 ! ! 即使是初学者也能学会!
接口自动化【k4】python+requests+pytest+csv+yaml 1. 项目目录
2. 公共方法的封装
2.1 配置文件 如果没有,使用这种方法进行封装是可以的,但是也有一些缺点。 ! ! !
import requestMETHODS = ["GET", "POST", "HEAD", "TRACE", "PUT", "DELETE", "OPTIONS", "CONNECT", "PATCH"]# [ 不能使用 k4 ]---class HTTPClient (object): def __init__(self, url, method="GET", headers=None, cookies=None): """headers:dictionary. 示例: headers= { "Content_Type":"text/html"}, Cookie也是一个字典。 """ self.url = url self.session = request.session() self.met.hod = method.upper() 如果 self.method 不在 METHODS 中: raise Exception("不支持的方法:{0},检查传入参数!".format(self.method)) self.set_headers(headers) self.set_cookies( cookies) def set_headers(self, headers): 如果 headers: self.session.headers.update (headers) def set_cookies(self, cookies): 如果 cookies: self.session.cookies.update (cookies) def send( self, params =无,数据=无,**kwargs):#urllib3.disable_warnings(urllib3.Exceptions.InsecureRequestWarning)响应= self.session.request(method = self.method,url = self.url,params = params,data = data , verify=False, **kwargs) response.encoding = "utf-8" # logger.debug("{0} {1}".format(self.method, self.u )rl)) # logger.debug("请求成功: {0} {1}".format(response, response.text)) 返回响应 2.2 为什么使用yaml设置全局数据?
我的博客的yaml请参考 ://www.cnblogs.com/zsplovezsp/p/12443036.html
3、测试用例和测试数据的格式
4、剩下的就很简单了,就不做它。 说明 - 如果你想学习Python和测试开发及测试自动化, 5. pytest的常用方法
pytest的常用方法及原理
1. pytest的原理
> pytest插件基于Pluggy模块。 Pluggy中有三个重要的概念:HookspecMarker(用于定义钩子函数)、HookimplMarker(用于实现完成插件逻辑的钩子函数)、PluginManager(用于注册和调用插件管理器);
2. Pytest规则
所有规范和实现都遵循 pytest_ 前缀命名约定,以便于区分和查找。 3. 如何加载插件
内置插件:从代码中的_pytest目录加载外部插件(第三方插件):通过setuptools本地入口点机制发现的第三方插件模块格式。 plugins:tests目录下的自动模块检测机制 4.pytest插件序列
1.扫描命令行选项,阻止插件加载(这个方法,内置插件也可以被阻止)。 这发生在正常的命令行解析之前。 -p number:name
2. 加载所有内置插件
3. 在实际解析命令行加载之前,通过预扫描名称来加载命令行-p选项。指定的插件
4.加载通过setuptools入口点注册的所有插件(可以通过设置环境变量 PYTEST_DISABLE_PLUGIN_AUTOLOAD 来禁用,明确指定的插件)。
5. 加载通过环境变量 PYTEST_PLUGINS 指定的所有插件
6. 通过命令行加载所有推断的 confest.py 文件。
-如果没有指定测试路径,则使用当前目录作为测试路径。
-如果指定的测试路径存在,则相对于第一个测试路径加载conftest.py并测试*/conftest.py。
请注意,未找到 pytest。 对于隐藏在更深的子目录中的 confest.py 文件,这是最好的选择:将 confest.py 保存在顶级测试或项目的根目录中。
7. 递归加载confest.py文件变量pytest_plugin指定的所有插件。
5.安装路径
pytest第三方插件库网站https://docs.pytest.org/en/latest/plugins.html
PyPI下载 https://pypi.python.org (可以使用pytest、pytest-、-pytest作为搜索关键字来搜索插件) 6.常用插件快速指南说明
pytest-rerunfailures :重新运行失败的测试用例 pytest-html :生成 xml/html 格式的测试报告,并将其保存到用户指定的路径 pytest -repeat:多次重复一个用例 pytest-假设:继续多次断言 pytest-xdist:通过允许以分布式方式执行测试用例来节省自动化测试时间 pytest-cov:覆盖率报告,显示哪些代码行已测试,哪些代码行未测试。pytest-instafail:报告测试执行期间的失败 pytest-timeout:基于函数标签或全局定义的超时测试 pytest-ordering:包含执行顺序的设置。 对于一些上下文相关的事情,你可能需要设置特定的执行顺序。 pytest-cache:重新运行上次失败的用例。 pytest-autochecklog:自动生成测试日志。 pytest-sugar:更改默认外观。 添加进度条
6.------------[ k4 ]---------------- [ k4]---------------[k4 ] ]-----
如果想了解更多代码,add_99Rampant
一定要关注。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! ! 请小心。 ! !
评论前必须登录!
注册