robotframework+python接口自动化的点滴记录

robotframework+python接口自动化的点滴记录

在robotframework+python框架上写了两三天的接口自动化,做了一些笔记。

1.在断言的时候经常由于数据类型导致较验不通过,值得注意的是,在定义常量或者变量的时候,使用${}代表int类型,例如${2}就代表数字2,另一种直接写2,则是string类型的2,返回的时候会是“2”。

2.由于接口response中会出现字典格式,那在写期望值的时候,就要把一些字段拼成字典的形式,可以使用create dictionary这个基础关键字,写法是:

${expectResult}=  create dictionary  guideType  ${guideType}    options   ${options}   questionId   ${1}   questionName  ${questionName}

3.当接口需要测试几次,只是参数改变的时候,需要用到for循环,这里我用的是for-in-zip,例如:
参数定义在参数文件里
@{questionId} ${1}  ${2}  ${4}  ${6}  ${8}
@{optionId}    ${1}  ${2}  ${9}  ${13} ${18}
用例中写:
:FOR   ${questionId}  ${optionId}  IN ZIP   ${questionId}  ${optionId}
要测试的内容,for里要执行的语句前面都要写
4.还用了一种普通的for循环,写法如下:
:FOR    ${questionId} ${optionId}  IN
...    ${1}    ${1}
...    ${2}    ${2}
...    ${4}    ${9}
...    ${6}    ${13}
...    ${8}    ${18}
5. 嵌套FOR循环的写法:
:FOR  ${questionIdRange}  ${content}  IN ZIP  ${questionIdRange}  ${content}
    ${options}=   get options by question id with false   ${questionIdRange}
    内嵌FOR生成完整option  @{options}
    ${question}=  create dictionary  content  ${content}  options  ${options} 
*** Keywords ***
内嵌FOR生成完整option
[Arguments]    @{LIST}
: FOR   ${item}    IN   @{LIST}
       ${item}=    blablablabla
这里会把子循环里得到的list传到主循环的options里,主要看如何内嵌,忽略业务代码部分。



留言