上一篇文章介绍了在设计接口用例以前应遵照的设计规范,详见《RobotFramework接口设计规范》,固然读者公司的内部规范也不必定非得彻底遵循笔者所提到的,适合本身公司内部的一套就能够了。编程
因为如今公司新项目的启动和自身负责的开发工做量的增剧,基本上更新文章都只能利用周末零碎时间来写,一个字一个字的码出来的,另外透露一下,下面分享的内容有部分核心思想笔者是将以前发表过的技术专利中的内容开放了一小部分哦,仍是有些干货内容值得借鉴的,也但愿各位读者多多支持一下。框架
接下来,咱们来聊聊,RobotFramework接口设计的分层玩法和经常使用的控制方式。编程语言
说到分层,你们最容易想到的就是著名的测试金字塔的分层结构,如:函数
那么RobotFramework设计的接口框架分层该怎么来分呢,固然分层的好处和做用笔者就不在这里过多的说了,也不是本文的重点,相信你们也都能体会到。测试
分层原则: 【分层目标:接口数据和接口业务分离】ui
可再细分为:加密
项目目录结构分层spa
接口数据、接口用例、接口业务分离设计
公共方法、数据分离视频
具体要实施接口自动化的产品项目,通常可做为一个自动化工程的主目录。
其中,项目主目录中,按分层思想,又可根据接口功能分红不一样模块,不一样模块可做为二级目录。在这里模块可划分红两类,一类为按功能模块,在命名时,以具体功能做为命名,如评论模块,可命名为Comment,且功能模块主要用来验证某个单一模块下各接口功能上是否符合预期,另外一类为模块业务,在命名时,以Business命名,全部业务功能验证均存放在此目录下,主要用来验证明现具体业务功能时,各接口的关联组合调用验证,如验证某个视频播放功能时,其中,对于视频播放这一具体的业务来讲可能会涉及到不少接口之间的调用,包括接口前置条件,接口之间传递数据,接口数据清理等。
*项目的功能模块划分以具体的项目而定,在实际的接口自动化项目开展中,须要求开发人员,提供项目接口对接文档。接口测试人员,依据接口对接文档描述,划分具体的功能模块及某个功能模块下包含了哪些具体接口。
不一样接口模块下,又可根据子功能的不一样,划分红不一样接口。主要又包含两部分,一部分为接口业务关键字(对应在其它编程语言中,这里所说的关键字,其实就是封装的函数、方法),一般一个接口下,能够根据测试的业务不一样,定义多个不一样的关键字。另外一部分就是接口功能用例,接口用例下仅需填测试数据便可。一般不一样的用例存放不一样的测试数据,即业务关键字的入参,业务关键字根据接收到不一样测试数据而去自动执行对应的业务流程。
*一般将具体的一组动做序列封装一个业务关键字,测试用例中之因此只存放测试数据的设计核心就是在于将测试业务与测试数据分离。由于一般测试过程当中,一个业务关键字的动做序列不会常常变动,须要变动的是测试数据,一般不一样的测试数据,会致使业务关键字的产生的结果不一样。
包括三部分,公共方法(Public)、项目配置文件(Config)、数据构造文件(xx_var.py)。其中:
公共方法,主要提供各个不一样项目接口之间都会调用到的一些公共方法,如数据加密、解密,接口数据校验、接口统计等。
主配置文件,主要存储接口在各个不一样环境下(一般一个产品,开发完成后,都须要在测试环境验证经过后,才可发布到线上环境,这里所说的不一样环境指的就是测试环境、线上环境)的访问地址,一般作法可在业务关键字编写脚本时,将接口访问地址经过变量来控制,而后此变量访问主配置文件对应的接口地址便可,一般接口环境分定义为测试环境下的接口访问地址、预发布环境接口地址、线上接口环境地址等(可参照下述截图部分)。
数据构造文件,因为在不一样环境下,须要用到的测试数据可能会有所不一样,因此可经过构建对应环境下的变量文件来为接口在不一样环境下执行时提供测试数据,变量控制文件中主要存储一些可变的变量文件,或经过函数来构造测试数据而后再将构建数据方法返回到具体变量中提供给测试用例或业务关键字使用。
数据控制文件的设计核心在于,在变量文件中定义构造数据的函数方法,而后将方法的返回值赋给一个变量,在具体的接口引用该变量。
一、在关键字头部,引入Library后面填入公共方法存放文件的路径
二、或经过RIDE导入的方式引入,RIDE导入的方式,只需选择右侧按钮,如导入关键字,只需点击右侧Library按钮,选择关键字路径便可。
这里主要介绍一下接口数据、接口用例、接口业务分离的通用控制方式:
接口数据与接口用例分离
提倡你们在测试用例中仅包括数据,也就是入参!!!(重要的事情,只说一遍!!!)
你们能够看到在测试用例中的入参数据有两处的数据是经过变量自动构造生成的,(一个是评论信息,另外一个是登陆用户名),这也是上面提到数据构造文件的做用。将数据构造的方法传入到变量,在用例层引入该变量便可,如:
接口用例与接口业务分离
RobotFrameWork环境搭建(基于HTTP协议的接口自动化)
本文原文可详见:阅读原文