unittest 接口自动化测试框架的思路与流程有哪些?你真的知道吗

目录

整体思路:分层设计

参数替换==》发送请求==》响应结果处理==》接口断言==》响应参数提取设置成属性==》数据库断言

详细思路与步骤


编写unittest接口自动化框架,按照以下思路和步骤去考虑:

整体思路:分层设计

参数替换==》发送请求==》响应结果处理==》接口断言==》响应参数提取设置成属性==》数据库断言

分层设计:

1、API:存放单个接口

2、data:存放Excel,表格中写好测试用例

3、cases:存放测试用例文件

4、conf:存放setting.py配置文件,配置各种账号密码等配置数据

5、report:存放测试报告

6、logs:存放日志

7、tools:存放各种工具类,对数据进行处理

8、main.py:框架执行入口

9、start.py:如果需要一次性执行多个Excel_sheet中的测试用例,那么先需要进行数据隔离,可以在这个文件中进行封装执行,那么不需要第8步了

#为了让每一步都顺利进行,需要封装很多个方法来实现,以下为详细思路

                 2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

详细思路与步骤

一:API接口——写框架之后,首先要跑通单个接口,这个可以先写简单的测试用例脚本跑通接口

二:EXCEL测试用例——提取每个接口的url,method,data等数据,在excel表格中填写每个接口的相关数据,在URL或者data中有需要替换的参数时,可以用符号标记出来,(例如#key#),方便过后用正侧表达式提取和替换参数

三:提取封装excel数据——封装一个类,专门用于提取excel数据,让方法返回数据为cases_list格式,组合标题case_title与用例数据case_data,常用方法便利表格数据后dict(zip(case_title,casa_data))(比如返回格式:[",…]

三:替换参数——封装一个类,用于替换参数,很多接口,需要替换data里面的参数,甚至url地址也会需要替换参数,比如第二步中,标题需要替换的参数#key#;

1、先写一个方法去掉excel表格提取数据中的空格和换行符,可以用data.replace()

2、写一个方法,专用用于提取需要替换的key,返回key_list

3、写一个方法,对于不用来源的key进行属性设置(全局变量设置,此时需要单独在一个py文件中写一个属性的类型)

4、写一个方法,专门用来替换key的值(用上一步设置的属性,或者用上一个接口返回的值设置成属性,或者前置sql查询的值设置属性),总之这一步把所有标记的#key#,替换成接口需要的正确的数据,最终返回完整的替换后的excel数据

四、发送请求——写一个request类,用于接口请求的数据,比如,接口数据类型是否一致,1、接口地址需要替换参数的需要提取处理,2、接口数据不同,需要区别处理的,比如不同的content_type不一样

五、响应数据处理——封装一个类,专门用于响应结果的处理,比如1、各种接口类型返回不一致的问题,可以单独自行返回想要的结果类型,2、进行接口断,3、数据库断言

六、接口返回值提取——封装一个类,专门用于接口返回值的提取,在excel中添加一列extract_dada,提取的数据直接设置成属性

七、封装一个类,用于响应接口断言,在excel表格中,添加一列expected_data,通过期望结果与实际接口返回值的对比

八、封装一个类,用于数据库断言,在excel表格中,添加一列assert_db,通过写出期望结果与数据库SQL查询的实际结果做对比

九、封装一个类,用于连接数据库,关闭数据库,以及sql数据的返回,对于接口值的作用不同,有时候需要返回一个值,有时候需要返回dict类型,可以区别做处理

十、封装一个类,专门用于路径的处理

十一、封装一个类,可以对测试报告进行数据,比如只展示当前的测试报告,历史的报告存放在history目录中

十二、各种方法封装好之后,可以在main.py中统一收集测试用例,执行测试用例,以及生成测试报告,发送测试报告邮件等,该main.py文件为该矿界的执行入口

备注:若测试数据excel有多个sheet,想要一次性执行所有的测试用例,那么先需要进行数据隔离,可以写一个测试用例类生成器(可以使用unittest.defaultTestLoader.loadTestsFromTestCase(cases_class)生成测试套件),通过遍历excel每一个sheet文件,然后传入测试用例类中,循环去执行,不过在执行每一个sheet的测试用例执行,需要写一个属性清除的函数,先清空属性,然后再发送请求(防止多个sheet中有共同的参数)

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值