IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> RobotFrameWork+Pycharm入门笔记 -> 正文阅读

[开发工具]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.发送请求并接收响应结果: r e s p 接 收 响 应 结 果 4. 获 取 响 应 的 数 据 : {resp}接收响应结果 4.获取响应的数据: resp4.{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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:25:04  更:2021-08-04 11:26:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 3:55:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码