robotframework自动化系列:新增流程

发表于:2017-11-16 13:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:janehost    来源:51Testing软件测试网采编

  刚接手项目的时候,要求所有流程在上线之前必须确保正向操作是正确的;这个时候又有新的模块需要测试,所以引入自动化测试是非常有必要的!通过对比,尝试使用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}
  而新增账号页面中元素的定位已经确定,接下来就是用例步骤:
  用例目的:新建账号-成功
  步骤:
  使用管理账号登录系统
  打开新建账号的页面,此处需要使用select window来切换tab到新建账号的页面
  输入符合的用户名、密码、确认密码、手机号码、邮箱、选择用户组、用户所属机构和全部数据权限
  点击保存
  断言:
  当前页面的url是否是query的页面
  当前显示的首行账号名称是否和新增的账号名称一致
  接下来就是使用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^)/~
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号