最近学习了一周的robotframework ,捋一下思路,做下总结
首先是在狂师大神的公众号上学习了分层的思想:
项目目录结构分层:
- 项目
- 模块
- 接口
- case---template引自接口业务关键字,case只传参数,不同的参数就构成不同的用例,达到接口用例、接口业务分离的目的。
- 接口数据-----接口数据其实可以理解成接口不用的入参,可以从是否满足指定条件,参数的数据类型,参数是否可选,组合参数,结合实际业务场景的不合理参数等几个方面来设计用例和接口数据
- 接口业务关键字-----接口业务关键字,可以理解是一个方法,需要接受一些参数,就是用例调用它的时候传入不同的参数来覆盖各种业务情况。通常一个接口下,可以根据测试的业务不同,定义多个不同的关键字。对这句话我在实际操作过程中深有体会,主要体现在断言校验上。比如在传入的参数类型不对,或缺少参数时,接口返回的json数据里code是-1,data可能就是null了。正常的传参的话,code返回0,但是正常的情况除了要校验code值,是还需要对data里的数据进行校验的。可能有人会说,那也可以只写一个接口业务关键字,用条件分支语句将每种业务情况分开,不就行了。这种是可以的。但是如果在请求状态层面,是不是又得将请求状态进行条件判断。都写在一起,我个人感觉是不够一幕了然。
公共关键字:存放一些公共的方法,比如获取token的(获取token的关键字需要传参数如ID等,具体根据接口来就行)。
公共数据:公共数据这里可以放一些不同权限的用户ID,又比如可以把数据库的名字放在一个list里。
https://www.cnblogs.com/jinjiangongzuoshi/default.html?page=2
变量的作用域----转载自https://www.cnblogs.com/yaxue/p/7132771.html
通常情况下,每个变量默认都是局部变量。
一个case里的变量,作用域在这个case内部;
一个userkeyword里的变量,作用域在这个userkeyword内部;
一个文件型suite里的变量,作用域在这个suite内部,所有下面的case也都可以使用。
一个目录型suite里的变量,作用域在这个目录内,他下面的文件型suite是无法使用的,所以一般在目录下新增变量没有太大意义。
作用域是可以修改的,即通过一些系统关键字,对变量进行作用域的设定,常用的关键字有:
Set Global Variable ——设定全局级变量
Set Suite Variable ——设定suite级变量
Set Test Variable ——设定case级变量