自动化框架的设计

很多人在做自动化测试的过程中会遇到一个瓶颈,就是能够写脚本,但是不知道怎么去组织代码,怎么搭建测试框架,今天博主就放点干货,分享一个轻量级的自动化测试框架的目录结构,如下图:
在这里插入图片描述
Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;

Report:测试报告生成和管理以及即时通知,测试结果快速响应;

Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;

Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;

TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;

TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;

TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;

Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;

Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心
分层如下:

config层,放配置文件,把所有的项目相关的配置均放到这里,用Python支持较好的配置文件格式如ini或yaml等进行配置。实现配置与代码分离。
data层,放数据文件,可以把所有的testcase的参数化相关的文件放到这里,一般可采用xlsx、csv、xml等格式。实现数据与代码分离。
drivers层,放所需的驱动,如Chromedriver、IEDriverServer等。
log层,所有生成的日志均存放在这里,可将日志分类,如运行时日志test log,错误日志error log等。
report层,放程序运行生成的报告,一般可有html报告、excel报告等。
src源码层,放所有程序代码。其中还需要进行更进一步的分层:
test层,放所有测试相关的文件,如case——测试用例、common——项目相关的抽象通用代码、page——页面类(Page-Object思想)、suite——组织的测试套件。
utils层,所有的支撑代码都在这里,包括读取config的类、写log的类、读取excel、xml的类、生成报告的类(如HTMLTestRunner)、数据库连接、发送邮件等类和方法,都在这里。

作者:huilan_same
来源:CSDN
原文:https://blog.csdn.net/huilan_same/article/details/52319537
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我可以给你一些关于Python自动化框架设计的建议: 1. 首先,你需要明确你的自动化框架的目标和业务需求,以便于你能够更好地设计和实现你的框架。 2. 其次,你需要选择一个适合你的测试框架,例如unittest、pytest或Robot Framework等。这些框架都有其优缺点,你需要根据你的需求选择最适合你的框架。 3. 接下来,你需要设计你的测试用例和测试数据。测试用例应该覆盖你的业务需求,并且应该易于维护和扩展。测试数据应该是真实的数据,以便于你能够更好地模拟真实的业务场景。 4. 然后,你需要编写你的测试脚本。测试脚本应该能够自动化执行你的测试用例,并且应该能够生成测试报告和日志。 5. 最后,你需要集成你的自动化框架到你的CI/CD流程中,以便于你能够自动化执行你的测试用例,并且能够及时发现和修复问题。 下面是一个简单的示例,演示如何使用unittest框架编写一个简单的测试用例: ```python import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('Foo'.isupper()) def test_split(self): s = 'hello world' self.assertEqual(s.split(), ['hello', 'world']) # check that s.split fails when the separator is not a string with self.assertRaises(TypeError): s.split(2) if __name__ == '__main__': unittest.main() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值