robotframework自动化系列:新增流程

刚接手项目的时候,要求所有流程在上线之前必须确保正向操作是正确的;这个时候又有新的模块需要测试,所以引入自动化测试是非常有必要的!通过对比,尝试使用RF进行自动化的回归测试。
测试中最常见的操作就是增删改查,所以对于自动化最简单的就是数据模块的增删改查人手进行操作。
这里先看一下web测试中的新增用例的测试点,如图所示
添加/修改测试点
对于一个新增操作,我们这里以账号新增为例进行操作展示,账号新增页面元素显示如图所示
账号新增页面展示
先说明一下,各个元素的定位方法:

输入用户名
[Arguments]    ${username}
Wait Until Element Is Visible    id=username
clear element text    id=username
input text    id=username    ${username}    #账号管理中的用户名和密码共用

输入密码
[Arguments]    ${password}
Wait Until Element Is Visible    id=password
input text    id=password    ${password}    #账号管理中的用户名和密码共用

再次输入密码
input text	id = ppassword	${ppassword}	

手机号码
[Arguments]    ${phone}
clear element text    id = phone
sleep    5
input text    id = phone    ${phone}    #用户信息共用此定位,账号信息中也共用

邮箱
[Arguments]    ${email}
clear element text    id=email
input text    id=email    ${email}

选择用户组
click element    xpath = .//*[@id='unTbl']/tbody/tr[1]/td[1]/i

用户所属机构
[Arguments]    ${organization_id}
Comment    select from list    id = organization_id    机构养老一    #账号中的所属机构共用此定位
#随机选择所属机构
${count}    get matching xpath count    .//*[@id='organization_id']/option
${sale_pattern_temp}    evaluate    random.randint(0,${count}-1)    random
${sale_pattern}    Convert To String    ${sale_pattern_temp}
select from list by index    organization_id    ${sale_pattern}

数据权限
#账号新增中的全选按钮
click element    xpath = .//*[@id='orgs']/li/input

账号保存
click button    xpath = html/body/div[1]/div/div[2]/form/div[10]/div/button[1]
Comment    click button    xpath = html/body/div[1]/div/div[2]/form/div[10]/div/button[1]
sleep    10

账号名称检查
${account}    get text    xpath=.//*[@id='tb_guardian']/tbody/tr[1]/td[2]
[Return]    ${account}

而新增账号页面中元素的定位已经确定,接下来就是用例步骤:

用例目的:新建账号-成功

步骤:

  1. 使用管理账号登录系统
  2. 打开新建账号的页面,此处需要使用select window来切换tab到新建账号的页面
  3. 输入符合的用户名、密码、确认密码、手机号码、邮箱、选择用户组、用户所属机构和全部数据权限
  4. 点击保存

断言:

  1. 当前页面的url是否是query的页面
  2. 当前显示的首行账号名称是否和新增的账号名称一致

接下来就是使用RF进行用例的编写(≧▽≦)/
根据用例步骤一步步来编写用例,这里将登录和关闭浏览器2个操作封装之后,分别在setup和teardown中进行设置了,如图所示

用例前置操作

账号添加用例代码展示如图

[Documentation]    用例目的:新建账号-成功
...    步骤:
...    1.打开新建账号的页面,此处需要使用select window来切换tab到新建账号的页面
...    2.输入符合的用户名、密码、确认密码、手机号码、邮箱、选择用户组、用户所属机构和全部数据权限
...    3.点击保存
...    断言
...    1.当前页面的url是否是query的页面
...    2.当前显示的首行账号名称是否和新增的账号名称一致
[Setup]    login
打开页面    ${GuardianEdit}
Take Screenshot    guardian
账号跳转
Take Screenshot    guardian
${username}=    gen chars    10
输入用户名    ${username}
输入密码    123456
再次输入密码    123456
${phone}    Evaluate    random.choice(['139','188','185','136','158','151'])+"".join(random.choice("0123456789") for i in range(8))    random
手机号码    ${phone}
邮箱    5645645645656@qq.com
选择用户组
用户所属机构    机构养老一
数据权限
Take Screenshot    guardian
账号保存
sleep    10
#确认显示信息
角色确认
sleep    10
Take Screenshot    guardian
Comment    ${mes}=    Confirm Action
Comment    sleep    10
Comment    Should Be Equal As Strings    ${mes}    保存成功!
Comment    确认保存
Comment    ${Auser}    get text    xpath=.//*[@id='tb_guardian']/tbody/tr[1]/td[2]    #后期po
#断言当前页面的url
Location Should Be    ${GuardianQuery}
${Auser}    账号名称检查
Should Match    ${Auser}    ${username}    
log    ${username}
log    ${Auser}
[Teardown]    close

代码截图如图所示

新增账号代码截图

这样新增账号成功用例已经完成。而根据web测试点,其他用例设计如图所示

账号用例缩略图

这里整个结构使用了RobotFramework的分层思想:

第一层即用例层,如上图所示

第二层是页面元素封装,如图所示

账号页面元素封装

第三层是元素值的变量集合,如图所示

变量集合

到此,账号新增模块的整个用例设计已经完成(o)/~

posted @ 2017-11-13 10:33  janehost  阅读(1442)  评论(0编辑  收藏  举报