python3+Robot Framework+PyCharm自动化测试框架设计

关于自动化测试框架的设计,笔者在前面的随笔里面有介绍和总结,这里结合实际的项目例子做个demo,环境部署参考笔者的的随笔《python3+Robot Framework+PyCharm环境部署及执行脚本》,拿开源的项目管理平台禅道为例。

一、针对项目特点确定选用的开源的测试框架,这里因为要做WEB UI自动化,选择robot framework +selenium2library+databaselibrary,例外一些辅助的第三方库,PyMySQL等等,其他的在做项目遇到现有的库解决不了的情况下,再去想办法,包括自己在robot framework的框架基础上面开发第三方库。

二、分析项目的测试模块,设计数据库表,因为笔者打算把测试用例数据放在MySQL数据库管理。这里以登录功能为例,笔者的是设计的数据库表t_login如下所示:

id 主键,不为null 测试用例编号
flag 不为null 缺省0,0表示执行,1表示不执行
account    
passwd    
expected 不为null 期望结果

三、笔者把目录分为3块,keywords,actionwords,testcase。

keywords:颗粒度最小的关键字单元。

actionwords:业务关键字,封装的好可以减少testcese的代码量。

testcase:测试用例脚本。

下面直接上代码,结构一目了然

keywords-》登录关键字.txt

*** Settings ***
Library  Selenium2Library

*** Keywords ***
登录系统
    [Arguments]    ${url}    ${account}=admin    ${passwd}=Aa123456    ${browser}=chrome
    [Documentation]    url:请求地址
    ...     account:账号
    ...     passwd:密码
    ...     browser:测试浏览器
    open browser    ${url}    ${browser}
    maximize browser window
    wait until element is visible    id=account
    input text    id=account    ${account}
    input text    name=password    ${passwd}
    click button    id=submit
    sleep    2
    ${page_title}    get title
    run keyword if    ‘${page_title}‘ == ‘我的地盘 - 禅道‘    return from keyword    true
    ...    ELSE    return from keyword    flase

退出系统
    click element    xpath=//*[@class=‘user-name‘]
    click element    xpath=//a[contains(text(),‘退出‘)]
    wait until element is visible    id=account
    ${page_title}    get title
    close all browsers
    run keyword if    ‘${page_title}‘ == ‘用户登录 - 禅道‘    return from keyword    true
    ...    ELSE    return from keyword    flase

keywords-》MySQL读取测试数据.txt

*** Settings ***
Library  DatabaseLibrary

*** Variables ***
${dbapiModuleName}    pymysql
${db_connect_string}    database=‘test‘, user=‘root‘, password=‘root‘, host=‘127.0.0.1‘, port=3306

*** Keywords ***
登录MySQL读取测试用例
    [Arguments]    ${tableName}    ${caseId}
    [Documentation]    dbapiModuleName:mysql数据库驱动的名称
    ...    db_connect_string:MySQL数据库连接信息
    ...    tableName:数据库表名
    ...    caseId:测试用例编号
    Connect To Database Using Custom Params    ${dbapiModuleName}    ${db_connect_string}
    @{queryResults}    Query    SELECT * FROM ${tableName} where id = ${caseId}
    log many    @{queryResults}
    ${flag}    set variable    ${queryResults[0][1]}
    run keyword if    ‘${flag}‘ == ‘0‘    return from keyword    ${queryResults}
    ...    ELSE    return from keyword    ‘跳过该用例‘

actionwords-》登录操作.txt

*** Settings ***
Resource  ../keywords/登录关键字.txt
Resource  ../keywords/MySQL读取测试数据.txt

*** Variables ***
${test_url}    http://127.0.0.1/zentao/user-login.html
${browser}    chrome

*** Keywords ***
登录测试
    [Arguments]    ${caseId}
    ${testcase}    登录MySQL读取测试用例    t_login    ${caseId}
    ${bool}    evaluate    isinstance(${testcase}, str)
    run keyword if    ‘${bool}‘ == ‘True‘    pass execution if    ${testcase} == ‘跳过该用例‘    ${testcase}
    ${account}    set variable    ${testcase[0][2]}
    ${passwd}    set variable    ${testcase[0][3]}
    ${excepted}    set variable    ${testcase[0][4]}
    ${actual_result}    登录系统    ${test_url}    ${account}    ${passwd}    ${browser}
    should be equal    ${actual_result}    ${excepted}    登录${account}失败
    ${actual_result1}    退出系统
    should be equal    ${actual_result1}    ${excepted}    退出${account}失败

testcase-》登录禅道.txt

*** Settings ***
Resource  ../actionWords/登录操作.txt

*** Test Cases ***
登录管理员账户admin
    登录测试    1

登录测试主管账号xiajie
    登录测试    2

登录测试主管账号xiajie,不输入密码(数据库设置的跳过)
    登录测试    3

登录测试主管账号xiajie,密码错误(数据库设置的跳过)
    登录测试    4

实际上,写测试用例就很轻松了,结合robot framework的关键字驱动,引入MySQL做持久层数据管理,实现数据驱动测试,直接在MySQL中新增测试数据,测试用例脚本直接调用业务关键字+测试用例编号,脚本易读性非常的好。

最后的执行完成后的测试报告效果:

原文地址:https://www.cnblogs.com/andrew209/p/10171337.html

时间: 2024-10-09 19:36:11

python3+Robot Framework+PyCharm自动化测试框架设计的相关文章

python3+Robot Framework+PyCharm第一个WEB UI自动化用例

这里只是列举一个很简单的例子,简单介绍工具的使用,编写用例之前,做好WEB UI自动化的准备工作,下载好chrome驱动(这里以chrome为例,不同浏览器有对应的驱动),注意驱动和浏览器版本要对应,不然启动浏览器会抛异常.例外要格外注意的就是编写用例的时候空格,关键字和参数直接是一个table制表符,也就是4个空格,建议在IDE里面把 · 设置出来,方便检查格式,这里就没有RIDE好用了,RIDE是纯表格式编程,希望python3能够尽快出个稳定版本的RIDE,造福大家~~ 测试报告 原文地址

自动化测试框架设计要点

目前比较常见的自动化测试框架主要有3种:数据驱动框架.关键字驱动框架和混合型框架. 1.数据驱动框架(Data Driven Framework) 数据驱动最适合测试的业务逻辑固定不变的应用程序,只有测试数据会变化.通常测试数据会被配置在外部文件或数据库中. 2.关键字驱动框架(Keyword Driven Framework) 关键字驱动顾名思义,它提供了一系列通用的关键字,用户通过调用这些关键字并输入一些参数可以实现单个操作,比如,打开浏览器.打开某个网页.点击某个链接等等,然后通过组织这些

Python3简易接口自动化测试框架设计与实现 实例2

目录 1.开发环境 2.用到的模块 3.框架设计 ?3.1.流程 3.2.项目结构 5.日志打印 6.接口请求类封装 7.Excel数据读取 7.1.读取配置文件 7.1.编写Excel操作类 8.用例组装 9.用例运行结果校验 10.运行用例 11 .小结 1.开发环境 操作系统:Ubuntu18 开发工具:IDEA+PyCharm插件 Python版本:3.6 2.用到的模块 requests:用于发送请求 xlrd:操作Excel,组织测试用例 smtplib,email:发送测试报告 l

Python3 Robot Framework测试框架

一 环境搭建 前提:Python3 环境已经搭建好 1.安装 Robot Framework 框架 管理员运行 cmd 后输入 pip install robotframework 2.安装Requests库 pip install requests 3.安装 robotframework-requests库 pip install -U robotframework-requests 二 sublime安装 这里不使用RIDE编写和运行robot framework (因为它暂时不支持Pyth

python+robot framework接口自动化测试

python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离! robot framework 的安装不过多说明,网上资料比较太多~ 实例:!!!!! 步骤一:新建项目 测试项目可以目录或文件存储,格式可以用TXT,TSV或HTML格式, 建议项目选择目录和TXT,这样便于管理 步骤二:新建测试套 测试套与测试项目一样,也

【架构研习】欲善其事先利其器-Robot Framework实战演练之框架的选择

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.0px "Helvetica Neue" } 之前有提到过,自己曾基于公司业务系统从无到有码过一套测试框架,但由于开发时的思想同时受限于公司业务及框架的适用性上,导致最终虽然框架可完美支持业务,但在易用性.兼容性及可扩展性方面依然存在一定问题,维护成本较高.后

Robot Framework - Web自动化测试火爆开班!!!

想学习的小伙伴,现在可以报名了!!!7月1日正式开始, 本期课程主要是web自动化为主,根据平时工作经验整理的一套流程以及使用过程中常见的问题总结. 学完后能很快上手,即学即用,课后遇到问题在线解答,远程协助解决. Robotframework学习交流群:724711865 课程详情咨询QQ:2393989903 课程费用:600/人(保证全网最低价) 课程时间:周六.周日晚上20:00-22:00 周日9:00-11:00 课程周期:一个月 课程安排如下: 第1课 robotframework

Python3+Selenium2完整的自动化测试框架实现(二):IE和Chrome浏览器驱动配置

上一篇写了自动化测试需要的最基础环境配置,地址:https://www.cnblogs.com/tdp0108/p/10412073.html 当前市面上很多公司开发的应用软件都是BS架构,即基于浏览器和服务器的程序,这里涉及到一个问题,就是在测试过程中需要测试各种浏览器的兼容性.本篇继续承接上篇,配置IE和Chrome浏览器驱动,用于实现自动化驱动打开不同的主流浏览器. 1     Chromedriver配置 (1)    下载谷歌浏览器驱动,下载地址:http://chromedriver

robot framework使用接口框架进行接口测试

发现此框架在测试接口上比soapUI好用的多,以下给大家分享以下我使用此框架测试API,直接介绍get方法的HTTP接口, 其实这个接口也是把POST数据作为参数进行get请求,使用post 方法也是一样,下面开始截图介绍: 网上有很多robotframework的安装教程,可以找度娘搜一下.这里就不介绍了哈.使用robotframework需要有些python基础,不过很好上手,一共6步就可完成接口用例自动化 第一步,新建项目 第二步,新建testcase 第三步,添加lib,此次需要的应用到