robotframework-UI自动化测试-实例3(无效登录)

Shake with your right hand but hold a rock in your left.

前情介绍:
练习环境配置
实例1(UI自动化-百度搜索)
实例2(有效登录)

测试需求:
在登录界面设计测试用例的时候,除了最基本的一个用正确的用户名和密码登录以外,一般还会设计几个无效登录的情况,比如:

  • 错误的用户名和正确的密码
  • 正确的用户名和错误的密码
  • 错误的用户名和错误的密码
    以上的情况都是为了验证系统对于无效登录时的异常捕获情况。从实际项目经验出发,开发人员在实现需求的时候,有效的用例基本能够顺利执行,往往是无效的用例方面会找到系统里面的bug,这和开发人员通常没有太多的时间去考虑异常处理是相关的。

测试设计:
写出对应的无效登录的Testcase集(单独写登录的测试用例的请参见实例2(登录)),如下图:

robotframework-UI自动化测试-实例3(无效登录)_第1张图片
tests.png

聪明的朋友一定会想到在以上6个测试用例中会发现其实都是在做同一个操作,不同的只是输入的用户名和密码不一样,这时会想到提取一个公用的模块出来实现这些重复的步骤,用数据驱动的模式来实现这个测试需求。

测试实现:
1 创建一个新的测试用例集OAInValidLoginTests,右键点击选取公用的New User keyword,取名Login with invalid credentials should fail
2 点击页面上出现的User Keyword文件会发现其界面和之前的Testcase是一致的。

robotframework-UI自动化测试-实例3(无效登录)_第2张图片
login.png

步骤还是遵循正常登录时候的步骤,只是在验证点上面需要做异常登录的验证。
3 为实现数据驱动,在User Keyword文件中加上参数化,点击[Settings]->[Arguments],在Arguments处写上需要参数化的两个变量 username和password

robotframework-UI自动化测试-实例3(无效登录)_第3张图片
22.png

4 创建对应的6个Test Cases,用图形方式比较麻烦,直接用Text的方式来实现更方便,切换到 Text Edit窗口,在Test Cases部分写入以下的代码:

*** Test Cases ***    USERNAME             PASSWORD
Invalid Username      invalid              ${VALID PASSWORD}

Invalid Password      ${VALID USERNAME}    invalid

Invalid Both          invalid              invalid

Empty Username        ${EMPTY}             ${VALID PASSWORD}

Empty Password        ${VALID USERNAME}    ${EMPTY}

Empty Both            ${EMPTY}             ${EMPTY}

你会发现在左边的树形界面上出现了对应的6个Testcase,点击进去后Edit界面下出现类似于下图的:

robotframework-UI自动化测试-实例3(无效登录)_第4张图片
invalid user.png

因为在这里又定义了一个变量${VALID PASSWORD}
5 变量的定义是在User Keyword中会发现有变化的值可以写为变量,变量的定义是在Testcase上右键点击New Scalar(为什么不直接取名字叫New Variable呢。。真是任性),输入变量的名称(Name)和对应的值(Value)

robotframework-UI自动化测试-实例3(无效登录)_第5张图片
variable.png

此时我们设计了3个变量,${VALID USERNAME},${VALID PASSWORD},${SERVER URL}
6 在OAInValidLoginTests(Test Case)中的Test Template中填写刚才创建的Login with invalid credentials should fail 文件。

robotframework-UI自动化测试-实例3(无效登录)_第6张图片
10.png

最终的robot代码如下:

*** Settings ***
Test Template     Login with invalid credentials should fail
Library           Selenium2Library

*** Variables ***
${SERVER URL}     http://localhost/smeoa/index.php?m=login&a=index    # this is the comment for server URL
${VALID USERNAME}    admin
${VALID PASSWORD}    admin

*** Test Cases ***    USERNAME             PASSWORD
Invalid Username      invalid              ${VALID PASSWORD}

Invalid Password      ${VALID USERNAME}    invalid

Invalid Both          invalid              invalid

Empty Username        ${EMPTY}             ${VALID PASSWORD}

Empty Password        ${VALID USERNAME}    ${EMPTY}

Empty Both            ${EMPTY}             ${EMPTY}

*** Keywords ***
Login with invalid credentials should fail
    [Arguments]    ${username}    ${password}
    open browser    ${SERVER URL}    chrome
    Input text    id = emp_no    ${username}
    Input text    id = password    ${password}
    click button    xpath = //input[@value='登录']
    sleep    2
    wait until page contains element    xpath = //input[@value='登录']    20    error
    close browser

CC先生的小黑板
1 变量的形式
${变量名}

2 变量的设置
Test case右键单击New Scalar
Settings里的Arguments中直接添加,用‘|’ 分割

3 模板的定制
新建类似于Test Case的文件,然后在Settings里面的Test Template中添加文件名

4 数据驱动
代码里面在Test case 部分直接填写

你可能感兴趣的:(robotframework-UI自动化测试-实例3(无效登录))