首页
学习
活动
专区
工具
TVP
发布

dongfanger

专栏作者
239
文章
191093
阅读量
27
订阅数
接口自动化框架设计漫谈V1.0
你好,我是刚哥。 针对“pytest搭建接口自动化框架”,谈谈对框架设计的当前认知。 简约至上。选择pytest就是选择Python,Python的设计理念是Simple is better than complex,不能让初学者直接上手的框架设计,都是在反其道而行之。所谓具备编程思想的自动化框架,并不值得追求。 原生用法。Beautiful is better than ugly,能不封装就不封装,不改变依赖库的函数声明,函数名、入参列表、返回类型。通过可省参数追加入参,通过装饰器添加代码,通过猴子补丁更改行为。 数据用例一体。Flat is better than nested,平铺比嵌套更容易编写,阅读,维护。将数据放在用例文件中,在单个文件中编写用例。数据驱动时,可从外部读取。变量管理亦是如此。 pytest提供了测试框架的基础骨架,Python库提供了各式各样的组装零件,我们要做的是拼凑,搭建适用于接口自动化测试的框架。 宜轻不宜重。挑选Python库,优先选择轻量级的,比如pytest-html既能满足使用需要,又能定制化样式,就不用安装依赖Java环境的Allure。比如Python内置logging就能打印日志,就没必要非得使用依赖visual c++的loguru。 用例独立。用例相互之间没有依赖,随便拉出一条用例就能执行。多接口场景用例,把每个接口视为一个测试步骤,排列在用例里面。无上游依赖、出参稳定的接口抽取为公共函数。简单来说,用例可以只包含一个接口,也可以包含多个接口。接口可以写在用例里面,也可以写在用例外面作为公共函数,再导入到用例里面。接口参数不同验证不同场景,复制用例文件,命名为新用例。 中文命名。用代码编写pytest,有个缺点是文件命名晦涩难懂。在“用例独立”这条设计原则之上,可以采用中文命名用例集(文件夹)和用例名称(文件名)。不存在用例相互依赖,就不需要import,代码中就不会出现中文,不影响代码执行和“专业性”。用中文写注释没问题,不要用中文作为对象名。 标记不如目录。pytest支持marker给测试用例打标,执行时按标记筛选用例执行。用例多了以后,维护标记变得麻烦。将用例集按照某种特性分组,比如基础自动化用例集、每日巡检用例集、联调用例集。按目录维护用例,按目录批量执行用例。
dongfanger
2024-01-24
870
接口自动化框架选型
背景:公司计划开展接口自动化测试,接口工具Postman、JMeter等不好管理用例,资源有限也一时半会搭不了测试平台,先用测试框架把自动化测试搞起来。
dongfanger
2023-12-29
1060
关键字驱动框架
通过Proxyman、Charles等工具抓包后,导出HAR包到data/har目录中。如果还没来得及抓,可以下载现成的:
dongfanger
2023-12-05
1371
关键字驱动框架
通过Proxyman、Charles等工具抓包后,导出HAR包到data/har目录中。如果还没来得及抓,可以下载现成的:
dongfanger
2023-12-05
1290
基于HAR包的流量录制回放
HAR(HTTP Archive format),是一种JSON格式的存档格式文件,通用扩展名为 .har。
dongfanger
2023-11-19
1900
开发指南,自研关键字驱动框架
框架内核是pytest,为框架提供了用例识别、组织运行、IDE集成等基础能力,以及pytest框架稳定性和强劲扩展能力。同时集成了requests等三方库,支持接口测试等。并实现了项目脚手架。
dongfanger
2023-11-11
1930
【原创】爆肝23页教程,自研关键字驱动框架
tep是Try Easy Pytest的首字母缩写,关键字驱动框架,专注于接口自动化测试,单个文件即可完成用例编写。
dongfanger
2023-11-11
2300
JSON转SQL小工具源码分享
将key-value的JSON数据,转换为insert的SQL语句,进而实现网页数据存储到数据库。
dongfanger
2023-11-09
1290
80道高频算法题Python版
掌握这80道题,99%的测试岗位算法考试都能通过。建议收藏后反复练习。本文为Python版本答案,对于Java版本答案,请在电子书《算法挑战》目录中查看。
dongfanger
2023-09-30
4230
pytestx容器化执行引擎
前端、后端、pytest均以Docker容器运行服务,单独的容器化执行引擎,项目环境隔离,即用即取,用完即齐,简单,高效。
dongfanger
2023-08-26
1520
pytestx重新定义接口框架设计
启动平台前后端服务后,从页面下载脚手架,平台会拉取开源项目tep-project最新代码,打成压缩包,生成下载文件,弹窗下载。
dongfanger
2023-08-26
1560
对IoC容器和Bean的学习笔记
The term "Spring" means different things in different contexts. It can be used to refer to the Spring Framework project itself, which is where it all started. Over time, other Spring projects have been built on top of the Spring Framework. Most often, when people say "Spring", they mean the entire family of projects. This reference documentation focuses on the foundation: the Spring Framework itself.
dongfanger
2023-08-09
1770
代码评审,揭示黑盒背后的真相
"They think I am hiding in the shadows, but I am the shadows."
dongfanger
2023-08-09
1240
聚焦于任务调度的测试平台pytestx
如果使用pytest做接口自动化,那么个人认为最好的编写工具是PyCharm,任何低代码测试平台都无法取代。当然不会代码,或者不使用pytest,那低代码测试平台,或者yaml,甚至excel写自动化用例,都是可以接受的。而在使用pytest这个特定场景里面,要做平台化,平台的功能就需要仔细斟酌。既然编写用例最好使用PyCharm,平台也就只能专注于用例编排和任务调度,即创建任务,关联用例,批量运行,以及定时,并行,通知等。
dongfanger
2023-07-24
1950
SpringBoot官方笔记3核心
By default, INFO logging messages are shown, including some relevant startup details, such as the user that launched the application.
dongfanger
2023-07-20
1930
SpringBoot官方笔记4Web
Most web applications use the spring-boot-starter-web module to get up and running quickly. You can also choose to build reactive web applications by using the spring-boot-starter-webflux module.
dongfanger
2023-07-20
1600
SpringBoot官方笔记5Data
Spring Boot integrates with a number of data technologies, both SQL and NoSQL.
dongfanger
2023-07-20
1460
SpringBoot官方笔记6消息
The Spring Framework provides extensive support for integrating with messaging systems, from simplified use of the JMS API using JmsTemplate to a complete infrastructure to receive messages asynchronously. Spring AMQP provides a similar feature set for the Advanced Message Queuing Protocol. Spring Boot also provides auto-configuration options for RabbitTemplate and RabbitMQ. Spring WebSocket natively includes support for STOMP messaging, and Spring Boot has support for that through starters and a small amount of auto-configuration. Spring Boot also has support for Apache Kafka.
dongfanger
2023-07-20
1160
SpringBoot官方笔记7IO
Spring Boot auto-configures the cache infrastructure as long as caching support is enabled by using the @EnableCaching annotation.
dongfanger
2023-07-20
1180
SpringBoot官方笔记8其他
The spring-boot-actuator module provides all of Spring Boot’s production-ready features.
dongfanger
2023-07-20
1380
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档