RobotFrameWork+Pycharm入门笔记

RobotFrameWork+Pycharm入门笔记

没错我又开始学接口自动化了。。。。。。
我的更新也是看我一阶段学的是啥,对啥感兴趣,随缘更新

(一)两个必须记住的关键字!

1.setup 和 teardown:设置和拆卸

Suite setup,Suite teardown 测试套件设置和拆卸

Test setup,Test teardown 测试用例设置和拆卸

测试设置是在测试用例之前执行的,并且在测试用例之后执行测试拆卸

2.Tags:标签

Force TagsDefault Tags两种:强制标签(具有此设置的测试用例文件中的所有测试用例始终都会获得指定的标记。如果在测试套件初始化文件中使用它,则子测试套件中的所有测试用例都会获得这些标记)和默认标签(没有自己[Tags]设置的测试用例会获得这些标记。从Robot Framework版本2.5开始,测试套件初始化文件中不再支持默认标记)

测试用例总是获得这些标签。此外,它不会获取使用默认标记指定的可能标记,因此可以使用空值覆盖默认标记。设置标签:Set Tags 删除标签关键字:Remove Tags keywords

(二)其他一些关键字

1.常用关键字

Comment:注释
Log:打印
Set Variable:设置变量
Get Time:获得系统时间
Catenate:字符串拼接

2.复杂关键字

create list:创建列表 @{LIST},@开头只能用log many打印 create dictionary:创建字典 ,&{some} a=1 b=2 可以直接打印&{some},也可以打印${some.a},有点类似于java中的复合变量
evaluate:执行python自带的方法

3.常用快捷键

F5 搜索关键字 ctrl+shift+空格 自动补全关键字 注:关键字不区分大小写

(三)变量类型

标量变量:${scalar}
列表变量:@{LIST}
Boolean变量:${true/false}
Null/None变量:${null/None}
空格:${SPACE} 空:${EMPTY
复合变量:&{some} a=1 b=2 可以直接打印&{some},也可以打印${some.a}

(四)结构

一个文件下来是一个测试用例表格,一个测试用例表格包含四个部分:

1.Settings-设置表:1.导入测试库、资源文件、变量文件 2.为测试套件和测试用例定义元数据

2.Variables-变量表:定义变量

3.Test Cases-测试用例表:创建测试用例,结构如下:

[Documentation]
用于指明当前测试用例文档(自己命名)。
[Tags]
用于标记测试用例。
[Test Setup],[Test Teardown]
指定测试用例设置和拆卸。
[Template]
指定要使用的模板关键字。测试本身将仅包含用作该关键字的参数的数据。
[Timeout]
用于设置测试用例超时。

4.Keywords-关键字表:从现有的较低级别关键字创建用户关键字

5.新增Common结构:下面有三个子目录:DataBase(放了各个项目所有需要用到的数据库连接参数)、SetUp(用来设置参数)、URL(各个项目用到的接口地址)首先,需要将Setup.robot这个resource导入到每个套件中,然后在SuiteSetUp中使用AllSettingSetUp这个关键字。然后,对照”设置测试环境链接参数“中的变量名,更改脚本中需要用的的变量。

(五)Pycharm连接数据库操作

Connect To Database Using Custom Params pymysql

db=“数据库名称”,user=“用户名”,password=“密码”,host=“localhost(主机号)”,port=3306(端口号)

执行sql语句:Execute Sql String(也可Query代替)
关键字用于断开与数据库的连接:Disconnect From Database

(六)接口自动化

测试用例表结构:

Create Session:创建一个与服务器的会话。 alias:当前会话的别名
url:服务器地址,基本地址(主地址),而不是接口的地址

Post Request:发送一个Post请求,并返回一个响应对象。 alias:选择一个会话的别名,来自于Creste Session关键字
uri:接口地址,不包含服务器地址 data:post请求体数据 返回值:response对象(requests库的response对象)

Get Request:发送一个get请求,并返回一个响应对象。 alias:选择一个会话的别名,来自于Creste Session关键字
uri:接口地址,不包含服务器地址 params:post请求体数据 返回值:response对象(requests库的response对象)

To Json: 把响应数据json字符串转换成字典对象。

Response对象:status_code:当前http通信的状态吗 text:响应数据的响应数据部分-字符串 json():转换成json对象

Should Be Equal As Strings:以整数的形式进行比较,是一个断言

步骤:

1.建立连接:调用Create Session关键字,创建与服务器的连接
2.准备请求数据:使用Cteate Dictorary关键字创建键值对的请求数据等
3.发送请求并接收响应结果:${resp}接收响应结果
4.获取响应的数据:${resp.text} 获取请求的状态:${resp.status_code}

示例:数据库增删改查操作
*** Settings ***
Library           DatabaseLibrary
Library           RequestsLibrary

*** Test Cases ***
fiest
    #链接数据库
    Connect To Database Using Custom Params    pymysql    db="drug_store",user="root",password="root20",host="localhost",port=3306,use_unicode=True,charset="utf8"
    ${select}    Query    SELECT * FROM ds_user
    log    ${select}
    Disconnect From Database
    
添加用户
    &{header}=    Create Dictionary    Content-type=application/json
    Create Session    AddCate    http://localhost:8088/project_1006    headers=${header}
    set test variable    ${data}    {"category_name":"类别12","sort":6}
    ${resp}    POST On Session    AddCate    addcate    data=${data}
    log    ${resp.status_code}
    log    ${resp.text}
    Should Be Equal As Numbers    200    ${resp.status_code}

查询用户
    &{header}=    Create Dictionary    Content-type=application/x-www-form-urlencoded
    Create Session    GetCate    http://localhost:8088/project_1006    headers=${header}
    ${resp}    GET On Session    GetCate    getcate
    log    ${resp.status_code}
    log    ${resp.text}
    Should Be Equal As Numbers    200    ${resp.status_code}
    Should Contain    ${resp.text}    类别7

修改用户
    &{header}=    Create Dictionary    Content-type=application/json
    Create Session    UpdateCate    http://localhost:8088/project_1006    headers=${header}
    set test variable    ${data}    {"id":12,"category_name":"cate11","sort":5}
    ${resp}    POST On Session    UpdateCate    updatecate    data=${data}
    log    ${resp.status_code}
    log    ${resp.text}
    Should Be Equal As Numbers    200    ${resp.status_code}

删除用户
    &{header}=    Create Dictionary    Content-type=application/x-www-form-urlencoded
    Create Session    DeleteCate    http://localhost:8088/project_1006    headers=${header}
    &{data}=    Create Dictionary    id=11
    ${resp}    POST On Session    DeleteCate    deletecatebyid/11    data=${data}
    log    ${resp.status_code}
    log    ${resp.text}
    Should Be Equal As Numbers    200    ${resp.status_code}

(七)补充

循环::FOR … IN RANGE …

END
跳出循环:Exit For Loop
if判断:run keyword if
… ELSE IF
… ELSE

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当在PyCharm中编写Robot Framework测试用例时,可以使用以下地址来获取相关信息和工具。Robot Framework的官方网站是https://robotframework.org/,你可以在这里找到详细的文档和教程。此外,Robot Framework的GitHub地址是https://github.com/robotframework/robotframework,你可以在这里获取源代码和参与开发。如果你需要安装Robot Framework,可以使用PyPI地址https://pypi.org/project/robotframework/。此外,需要注意的是,在PyCharm中编写Robot测试用例时,关键字没有自动补全提示,你可以通过查阅文档或访问Selenium2Library的网页https://robotframework.org/Selenium2Library/Selenium2Library.html来查询Selenium关键字。123 #### 引用[.reference_title] - *1* *3* [RobotFramework进阶(一)集成Pycharm及UI自动化用例编写](https://blog.csdn.net/Makasa/article/details/125752741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [pycharm 搭建 robotframework自动化测试环境](https://blog.csdn.net/weixin_43536223/article/details/109131339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值