自动化
文章平均质量分 83
自动化
evelol7
失业青年
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【pytest框架源码分析五】pytest插件的注册流程
对比可以看到这些文件中都有实现,其中mark,setuonly,setupplan中的实现方法都加了@pytest.hookimpl(tryfirst=True),按照之前介绍的原则,后加的先执行,加了tryfirst的先执行,这里的执行顺序为setupplan,setuponly,mark,cacheprovider,…这里可以看到,其先取了下对应的接口方法有无opts参数,如果没有,则判断一下方法是否是以pytest_开头的,如果是,则添加opts参数。这个main方法,最重要的有两步,第一步是。原创 2025-03-19 17:22:50 · 1045 阅读 · 0 评论 -
【pytest框架源码分析四】pluggy源码分析之hook执行
如果没有异常,则继续执行send()方法,这一步大都会抛出异常,因为函数中只会有一个yield,如果这边不抛出异常,说明函数中有两个yeild,后面会提示报错"has second yield"。接下来和上面类似,取teardowns中的内容,这里多个判断isinstance(teardown, tuple),主要和上面的处理有关,整体是一致的,有异常抛出异常,无异常则继续执行。hook_impls:hook的impl列表,impl中包括插件,插件的方法及其配置,一个方法一个impl。原创 2025-03-02 14:24:13 · 839 阅读 · 0 评论 -
【pytest框架源码分析三】pluggy源码分析之hook注册调用流程
我们这边还用之前的例子,来介绍下插件的注册调用流程。注册方法中比较重要的就是实例化了一个hookimpl对象,并且把它添加到hook中,具体看就是添加到_hookimpls的list中(整体在我们上面添加的HookCaller下)。pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。即我们在执行pm.hook.pluggy_test(arg1=1)的时候调用的_multicall方法执行插件方法。执行方法就是最下面这行。原创 2025-03-01 14:29:25 · 989 阅读 · 0 评论 -
【pytest框架源码分析二】pluggy源码分析之add_hookspecs和register
接下来是具体的方法,定义了一个names的list,然后dir(module_or_class) 查看我们入参模块或者类的所有属性和方法(dir()内置函数,可查看所有属性和方法,注意这里是属性名和方法名,是str类型的,不是直接的方法),然后进入parse_hookspec_opts(module_or_class, name)方法。这里可以看出初始化pm后,先add_hookspecs,再register具体的实现,调用时,未打印sepc类中的内容,只打印了impl类中的内容,并且后注册的先执行。原创 2025-02-28 17:40:48 · 1032 阅读 · 0 评论 -
【pytest框架源码分析一】pluggy源码分析之hook常用方法
这是一个装饰器类,其中主要的实现就是__call__下方的setattr_hookspec_opts方法,除去一个if判断,主要的操作是 setattr(func, self.project_name + “_spec”, opts),即给我们的方法加一个属性,属性名为self.project_name + “_spec”,value为上面定义的opts,里面更具体的属性则为默认值。tryfirst的放在后面,trylast的放在前面,否则放在最前面的tryfirst的前一个。具体参数意义我们后面再看。原创 2025-02-25 21:16:18 · 564 阅读 · 0 评论 -
pytest框架源码解析一
方法内部创建了一个pluginmanager的对象,然后以此为入参创建了一个config的对象,并且把args,plugins和dir(当前文件路径-即运行主方法的文件路径)都存到config对象中去。方法中先是判断了args是不是None(若是none,则再取一下命令行中的参数),是不是路径参数(若是路径类型则转成字符串),是不是 不是list(如果不是则抛出异常)。_.py下,入参有两个,args和plugins,这边我们都是没有传的(但是有默认值),返回值为int类型的退出码,一般成功了退出码为0。原创 2025-02-24 15:05:08 · 1025 阅读 · 0 评论 -
【python自动化六】UI自动化基础-selenium的使用
selenium是目前用得比较多的UI自动化测试框架,支持java,python等多种语言,目前我们就选用selenium来做UI自动化。原创 2024-12-23 23:29:49 · 1613 阅读 · 0 评论 -
【python自动化五】接口自动化基础--requests的使用
python的接口请求可以用requests库,这个介绍就不多说了,网上说得很详细。接下来直接记录下如何使用(当然也不限于自动化的使用)原创 2024-12-08 19:58:25 · 2298 阅读 · 0 评论 -
【python自动化四】日志打印
1.当日志文件达到设定的最大值时,RotatingFileHandler会自动将当前日志文件切分为一个新的文件,并继续向新文件中写入日志消息,保证了单个日志文件不至于过大。主要就是打印了时间、文件名、行号、方法名、日志级别、具体日志信息,个人认为这还是比较全面的,当然如果涉及到其它例如多线程之类的,可根据自己的需要选取打印信息。当日志文件数量达到设定值后,最旧的日志文件会被删除,从而保持日志文件数量的控制。然后我们设置我们自己的日志handler,一个是输出到文件的,一个是输出到控制台的。原创 2024-12-07 21:05:50 · 1022 阅读 · 0 评论 -
【python自动化三】allure测试报告优化
前文中讲了如何集成allure测试报告,但生成的测试报告比较简单可以看到无论是主页还是具体用例页面,内容都比较少,无法看到更具体的内容,这里我们丰富一下测试报告。原创 2024-12-04 14:29:42 · 1281 阅读 · 0 评论 -
【python自动化二】pytest集成allure生成测试报告
pytest本身不会直接生成测试报告,而allure是一种生成测试报告的公共插件,可与多种测试框架配合生成测试报告,本文介绍下如何集成allure生成测试报告。原创 2024-12-04 11:31:29 · 1394 阅读 · 0 评论 -
【python自动化一】pytest的基础使用
和多数自动化测试框架一样,pytest也支持在类中增加setup和teardown方法,直接上个例子在类中我添加了方法和类的setup和teardown方法这里可以看到其执行顺序为fill:#333;color:#333;color:#333;fill:none;原创 2024-12-03 15:34:27 · 1765 阅读 · 0 评论
分享