千家信息网

robot接口自动化用例编写

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,如何手写robot自动化用例,网上虽然有一大堆教程,但都是关于ride的,对于如何从脚本角度来写,一直零零散散,语焉不详,本文以互联网最常见的API接口自动化为例,给出方向性指引,文字不多,足够你理解
千家信息网最后更新 2024年10月01日robot接口自动化用例编写

如何手写robot自动化用例,网上虽然有一大堆教程,但都是关于ride的,对于如何从脚本角度来写,一直零零散散,语焉不详,本文以互联网最常见的API接口自动化为例,给出方向性指引,文字不多,足够你理解,想要深入,请依循文中的文字,再去百度,慢慢体会,逐步精深。

用例编写前提:已经部署好了robot/python环境

第一个http接口

*** Settings ***Library  CollectionsLibrary  ProcessLibrary  RequestsLibrary*** Variables ***${DOMAIN}       http://10.xx.xx.xx:8091${URI}          /test/backend/xxxxlogin${HEADER}      {"Content-Type":"application/json"}${USER}        {"accountType":"1", "phonenumStr":"iamusername", "password":"iampassword"}${LIST_ANIMALS}    ["cat", "dog"]*** Test Cases ***my first http test case    create session  myhttp          ${DOMAIN}    ${uri}          set variable    ${URI}    # headers一定要转成 json,不然data传不过去       ${header}       to json         ${HEADER}    ${postdata}     to json         ${DATA}    ${resp}         post request    myhttp    uri=${uri}      data=${postdata}       headers=${header}    # 校验 http的状态     should be equal as integers  200    ${resp.status_code}    # 打印 调测信息    #log     ${resp.content}    #log     ${json}    #log     ${json[0]}    #log     ${json[1]["id"]}    ${json}   to json     ${resp.content}    # 校验返回数据的关键值    should be equal as strings   2.0   ${json[1]["jsonrpc"]}

多步操作

所有的返回值都是字符串类型,转成json后就可以像字典型一样随意取用了

    ${json}   to json     ${resp.content}

把取到值当成下一次调用的入参

建议每个testcase只测试一个功能,接口测试阶段,不要构造过于复杂的场景(用例代码超过一屏将被视为复杂,需要拆分)

结果校验

请求http获得的返回都是字符串类型,解析成json才可以自由取用值
提供多种校验函数如下:

should be equal as integers    should be equal as numbers  should be equal as stringsshould be trueshould be emptyshould contain  should contain any# not 也支持 should not be equal as integers    should not be equal as numbers  should not be equal as stringsshould not be trueshould not be emptyshould not contain  should not contain any

数据驱动

robot宣称支持数据驱动,支持按照template从表格读数据来跑用例,但是问题是,如果要对数据表格里的case做拣选和拆分就会无力了,所以,数据驱动适合比较大规模的协议测试,而对于有细力度的统计case的需求是不好用的,我们的建议是用测试数据分散在testcase里,保持case的独立性和灵活性,如果确实有大量的手工操作的话,提供小工具自动创建testcase。

数据驱动即为定义好流程(Template),然后就可以按照参数罗列形成用例了,每一条数据都会独立执行

*** Test Cases ***Invalid Username    [Tags]    Iteration-3    Smoke    [Template]  Login with invalid credentials should fail    invalidname      qwe123    091931          invalidpassword*** Test Cases ***Login Success    [Tags]    Iteration-3    Smoke  core    [Template]  Login success    068970          qwe123    052255          qwe123

前置条件(可选)

一个用例文件中包含很多testcase,我想统一加些动作该怎么办?框架提供两个方法,如果是前置条件(每个用例开始前执行)就用Set up,在setting里编写你的动作即可,如果动作很复杂,可以做成关键字调用即可,就像下面一样:

    *** Settings ***    Test Setup      Get config    *** Keywords ***    Get config            log     正在初始化...            set suite variable  ${config}       {"env":"uat", "user":"haha"}

清理动作(可选)

如果是后置条件(每个testcase结束后调用),就用Tear down,样例如下:

*** Settings ***Test Teardown   Do clean*** Keywords ***Do clean    log     正在清理...

关键字驱动

框架提供自定义的关键字方案,只需要在Keywords下面书写你的逻辑动作即可,关键字可以是英文,也可以是中文,顶格写,不限制空格和特殊字符,你可以像书写自然语言一样写用例代码啦

*** Keywords ***My first keywords    log     hello keywords我的第一个关键字    log     你好, 我的关键字
数据 关键 关键字 动作 驱动 测试 接口 复杂 字符 条件 支持 代码 字符串 建议 文字 框架 正在 类型 表格 独立 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 热血盛大传奇服务器维护需要多久 数据库基本模型 长沙飞信网络技术 海淀区正规软件开发售后保障 新媒体运营与网络安全 梦幻西游端游数据库 密云数据库安全防护系统 洛奇英雄传最强服务器 利用笔记本架设家庭数据库 网络安全系统一套多少钱 几千万用户服务器配置 数据库中权限的撤销 如何为网络安全 网络安全主要测试工具种类 如何查看服务器节点的内存大小 数据库删除语句可以同时执行吗 数据库tnt是什么意思 广东戴尔服务器铸造辉煌云主机 城市管理基础设施数据库 中国企业税收数据库 银行营业厅有服务器吗 武汉网盾科技有限公司服务器租用 上海羲和 软件开发人员 供电公司开展网络安全进基层活动 宿迁软件开发情况 网络安全3级等保要注意哪些方面 网络安全配置总结 网络安全儿童画集合 软件开发工具课程设计 2.9版泰坦之旅数据库
0