转载自:http://www.cnblogs.com/LanTianYou/p/5952472.html
目录
[本文出自天外归云的博客园]
这两天用python写了一个自动化测试框架,取名为Auty。准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程——
首先在这里我要感谢我的大师兄朱勃的指点、交流和帮助!
Auty文件夹结构介绍
1. actions文件夹:包含了和业务相关的包含可复用方法的脚本文件,根据业务的不同可以在actions文件夹下创建不同的业务文件夹;
2. constants文件夹:包含了常量初始化的python脚本文件,根据业务划分可以再创建子文件夹或多个常量文件;
3. data文件夹:包含了测试用的数据;
4. lib文件夹:包含了支持框架运行的python文件;
5. log文件夹:包含了运行测试过程中生成的日志文件;
6. results文件夹:包含了测试结果文件;
7. scripts文件夹:包含了scripts文件夹和selections文件夹;
1)scripts文件夹下包含了测试脚本(可根据业务划分成多个子目录);
2)selections文件夹下包含了suite文件(包含了需要执行的脚本路径集合);
8. utils文件夹:包含了和业务逻辑无关的包含可复用方法的脚本文件;
Auty文件结构介绍
1. Auty文件夹下:
1)__init__.py文件:包结构所必需文件(以下所有涉及可调用脚本的文件夹下均需有此文件);
2)config.txt文件:Auty框架配置说明文件;
3)recovery.py文件:垃圾代码回收文件(用来回收执行测试过程中因故障未能自动删除的自动生成的代码);
4)requirements文件:包含了框架所需要安装的python库信息;
5)setup.py文件:执行脚本以安装requirements文件中所包含的python库;
6)start.py文件:执行脚本以启动接口自动化测试;
2. lib文件夹下:
1)exe_deco.py文件:包含修饰脚本运行时方法的文件;
2)execute_selection.py文件:包含运行suite集合下脚本方法的文件;
3)generate_html.py文件:包含根据生成的csv格式测试结果文件生成html类型测试结果文件方法的文件;
4)generate_result.py文件:包含生成csv格式测试结果方法的文件;
5)read_selection.py文件:包含读取可执行的脚本列表方法的文件;
6)recovery_code.py文件:包含垃圾代码回收方法的文件;
7)write_log.py文件:包含生成日志文件方法的文件;
3. scripts文件夹下:
1)create_selection.py文件:包含创建suite文件(all_scripts_selection.txt)方法的文件;
Auty使用步骤
1. 运行Auty/setup.py文件;
2. 编写接口测试python脚本并放到Auty/scripts/scripts目录(或子目录)下;
3. 运行Auty/scripts/create_selection.py文件生成Auty/scripts/all_scripts_selection.txt文件;
4. 修改Auty/scripts/all_scripts_selection.txt文件自定义test_selection.txt文件(名字随意起)并放到Auty/scripts/selections文件夹下;
5. 运行Auty/start.py文件开始接口自动化测试;
6. 在Auty/results文件夹下生成的测试结果文件中查看测试结果。
Auty编写过程
这个框架里scripts、utils、actions、contants四个文件夹中的内容是根据实际工作内容可以随意替换的,其他为Auty接口自动化测试框架必需的组成部分。由于后续开发工作比较琐碎,一些更改的代码不能及时更新到以下各篇文章中。最新代码请见:Github
接口测试用例编写建议
框架的诞生从某种层面上讲也是为了让编写的代码更加规范化。抛开框架而言,对于接口测试用例的编写,还是要给出以下建议:
1. 涉及接口中的url,不要写死在case中,要通过常量访问,将url存储在指定constant文件中(以免接口域名变更等原因造成的不可维护);
2. 测试用例中不要包含测试数据等可变信息,要设成变量,专门将变量的初始化工作在一个指定的文件中完成;
3. 测试用例中不要重复粘贴大段代码逻辑(不利于代码的走查,会造成代码冗余并提高出错几率),凡是可以复用的过程一律提取成方法,分类放置在指定的存放业务逻辑action的文件夹中;
4. 关于注释:用语一定要官方,注释的意义更多是对别人而言的,要让其他人一看就懂;一定要具体详细,不要话说一半;一定要位置准确,注释下方代码逻辑一定要与注释内容吻合而不是在注释下方过了一段代码后才开始注释所包含的内容逻辑。