1.测试方案制定
根据项目需求,梳理测试点,制定项目测试方案,进行自动化框架选型,协调测试资源,规划测试进度,制定行动计划表,制定测试方案。
2.测试用例编写
2.1 测试用例编写方法
根据提供的接口文档,按照用例设计方法进行测试用例编写;如果没有提供接口文档或或提供的接口文档不全,则需借助postman、jmeter、fiddler等工具辅助完成用例编写。
2.2 测试用例管理
使用Excel对测试用例进行管理,一个sheet页对应一个接口的测试用例,一条测试用例包含:用例编号、请求路径、请求数据、期望值、实际值、测试结果、sql检查语句等。
基本思路如下:
3.测试脚本开发
3.1 目录框架组织
对于一般的接口自动化项目,可参考以下目录框架设计创建项目工程,并结合项目实际情况适当调整。
目录
作用
cases
存放接口测试脚本;
一个接口对应一个py文件,多个接口对应多个py文件;
以接口名字+数字的形式进行命名,能从名称上区分各个接口;
config
存放配置文件;
将测试中用到的环境信息、参数信息、账号信息等几种在配置文件中进行统一管理,当测试环境发生改变时,方便修改环境参数信息。
data
存放测试用例Excel文件;
docs
存放测试项目涉及的文档;
如:需求文档、测试脚本更新记录等
libs
存放第三方库;
logs
测试日志生成路径
report
测试报告生成路径
scripts
存放测试脚本,为测试框架核心,包含以下模块:
handle_excel.py:测试用例Excel处理模块;(必选)
handle_config.py:配置文件处理模块;(必选)
handle_context.py:参数化处理模块;(必选)
handle_log.py:日志处理模块;(必选)
handle_mysql.py:数据库处理模块;(可选)
handle_path.py:路径管理模块;(必选)
handle_requests.py:HTTP请求处理模块;(必选)
handle_user.py:参数生成模块;(可选)
scripts 处理模块设计scripts为整个框架核心模块,由以下模块组成,各模块是基于python已有库或第三方库的二次封装。包含:用例处理、配置文件处理、请求处理、测试报告处理等模块。根据实际项目,可对部分模块修改、选用。
测试用例Excel处理模块功能:根据传入的Excel名称和Sheet页名,读取测试用例数据、保存用例执行后的结果。
方法:获取所有用例;
获取指定用例;
保存用例执行结构,含实际值、测试结果;
涉及模块:openpyxl、namedtuple
配置文件处理模块功能:根据传入的区域名和选项名,读取对应的选项值;
将生成的用户信息保存数据到配置文件中;
方法:读取配置文件的选项值,并可将值按需转成相应类型,支持的类型有:int、float、str;
将执行过程中的必要数据保存在配置文件中;
涉及模块:ConfigParser
参数化处理模块功能:对Excel用例中的参数进行参数化
方法:正则匹配模式设计;
参数替换处理;
涉及模块:re
备注:一个接口中对应多个参数需要做参数化,可以一个接口对应一个参数化方法,而这一个方法中对应多个参数的正则替换方法。
日志处理模块功能:日志打印处理保存
方法:打印不同级别的日志;
在控制台打印日志;
输出日志并保存在日志文件中;
涉及模块:logging、os
数据库处理模块功能:传入sql语句,对数据库操作,获取或创建对应数据;
方法:连接数据库进行操作;
获取多条数据信息或单条数据信息;
生成新的用户参数信息;
关闭数据连接信息;
涉及模块:pymysql、random
路径管理模块功能:对测试脚本中要使用到的所有目录、文件的路径信息进行集中统一管理
方法:提供所有目录路径、文件的路径信息
涉及模块:os
HTTP请求处理模块功能:对Http请求进行封装处理,只需要提供请求方法、url、数据便可发起一次请求
方法:创建Session对象,对整个过程的session进行管理;
发起请求,根据请求方法、URL、参数进行请求,并返回响应数据;
关闭session管理对象;
涉及模块:requests、json
参数生成模块功能:根据需求生成必要的参数信息,并保存到配置文件中
方法:创建用户信息
备注:可选模块
4.持续继承部署
使用jekins、svn进行部署
……
5.修订记录
序号
变更内容
版本
修改者
时间
1
根据项目工程创建文档
1.1
只要我一开枪,这群里就只剩下大佬了
2019-6-9