• 15
  • 15
分享

  robotframework其实就是一个自动化的框架,想要进行什么样的自动化测试,就需要在这框架上添加相应的库文件,而用于webui页面自动化测试的就是selenium库。关于robotframework框架的搭建我这里就不说了,今天就给大家根据一个登录的实例来讲一讲,selenium库的相关应用吧。  要想运用selenium库,首先是导入此库的信息。在哪里导入呢?

  那就是在我们已经安装好的robotframework的操作页面即ride中导入。

  打开ride,按照以下顺序依次建立项目:

  1.新建测试项目

1.png

  2.新建测试套件,在已经建好的项目下建立测试套件

1-1.png

  3.新建测试用例,在已经建立好的套件下,创建自动化测试用例

1-2.png

  建好以后的结构如下:

1-3.png

  在建好的目录上左键单击套件名称,就会出现如下页面:

1-4.png

  单击右上方的library标签,就会弹出如下页面:

1-5.png

  在此页面,你可以直接在name栏输入selenium库文件名点OK,也可以点browse按钮,选择selenium库文件名,一般我是直接输入名称来导入的。

  在这里输入的库文件名是Selenium2Library,导入成功后,在setting项目页面上就会一条黑色的记录展示出来,下图是导入了多个库以后的展示,如果导入失败,库名称将显示为红色,这时候你就要查看日志找原因了,这里就不多说了。

1-6.png

  库文件可以导入在套件下,也可以在根目录下导入,不同位置导入的使用的范围不同,其它没有区别。

  库文件导入成功以后,我们就可以开始webui页面自动化测试脚本的编写了。

  我们就拿登录163邮箱来做一个测试吧。

  登录163邮箱的测试用例大概是这样的:

  ·首先是打开163邮箱登录页面

  ·其次是输入正确的账号,密码

  ·然后登录

  ·最后是检查登录是否成功。

  我们根据已经写好的测试用例步骤及检查结果来写这条自动化测试脚本,写好的脚本大概是这样的:

1-7.png

1-8.png

  结合这个脚本给大家讲讲这里面这些字段的用法:

  Teardown:这个字段可以理解为后处理,就是自动化脚本跑完做的一个处理,在运用selenium库进行自动化测试的时候,这里面一般是设置的close browse,就是自动化用例脚本跑完之后,关闭浏览器。

  Timeout:超时时间设置,这个设置的作用就是防止自动化脚本在执行测试的时候卡在某一个环节一走卡着,不能进行下一条脚本测试。这个时间的设置要根据当前你测试脚本花费的时间来填写,并没有固定值。

  这两个是测试脚本的一个预设值,接下来的内容就是登录163邮箱的一个实际测试脚本了。

  我们的所看到的截图中的第一列蓝色的字体的关键字,其实也就是我们对应的操作动作。

  Open browse:就是打开浏览器,这一行所对应的第二列就是我们要登录的163邮箱的地址,所对应的第三列就是浏览器类型,我们常用的浏览器类型有IE,chrome,firefox等,这个根据实际填写,所要说明一点的是,无论你输入的是哪个浏览器,在python的安装目录下,一定要有这个浏览器相应的驱动文件,有驱动文件版本必须与你电脑上当前安安装的浏览器版本是一致的,否则脚本运行就会报错。

1-9.png

  Sleep:在打开浏览器这个动作后我用了一个关键字sleep,其实就是等待的意思,因为打开浏览器网页到页面完全展示出来是有一定时间的,所以在这里我用了一个sleep关键字,时间是根据网页完全展示出来的一个估算时间,你可以用wait until element contains这样一个关键字来等待。

  Select frame:在完全展示出来后,这里又用一个select frame来选择一下窗口,sele为什么要用这个,是因为输入账号,密码,登录这几个选择在网页中用了这样的一个嵌套的格式,如果不用select frame来选择一下,无论我们账号,密码输入的定位多正确,自动执行测试的时候都无法输入账号,密码从而进行登录。

  那么如何知道这个页面用了frame呢,就要通过查看网页的html代码来看了。像这个登录页面,当选中账号输入框时其位置代码相应位置被标蓝,顺着这个位置向上查它的父路径,发现有一个iframe标签,选中iframe 标签这段代码,发现整个账号,密码框,登录所在的位置都被选中,说明这几个元素是在iframe标签下的,我们要定位这几个元素,需先选中切换到里面去。

1-10.png

  像这种需要进行选择切换的还有网页内嵌套表格,通过跳转链接打开新的网页等,大家在进行元素定位时要多留意相应的标签,在进行元素定位时,使用正确的选择关键字。

  如从百度首页通过链接进入hao123网页,因为是打开新的网页,在这里就用了switch window。

1-11.png

  Input text:账号,密码输入,这行对应的第二列就是账号密码框所对应的位置,这个位置是如何定位出来的,这里用到了了selenium库中的元素定位。元素定位常用的有CSS,Xpath,name,id等,这里就不详述了,不会的可以到网上搜一下。

  此两行所对应的第三列,就是相应的用户名和密码。在这里我把用户名和密码设置成一个变量,所以在用的时候是直接引用了变量名。

  变量的设置很简单的,选中套件或根目录右键单击,在弹出的菜单中选中new scalar,,在接下来弹出的页面中,设置变量名,和变量值点OK就可以了,如用户名变量的设置:

1-12.png

  Click element:这是一个单击鼠标左键的动作,所对应的第二列是此元素的位置路径。鼠标左键单击还有click button,click link,click button关键字一般用于元素type为button时,如果元素 type不是button类型的,用这个关键字,就不会执行这个鼠标动作。

  Click link一般用于这个元素包含有超链接时,如百度首页的hao123图片,就带了一个超链接属性:

1-13.png

  好了,接着上面的脚本来说,在登录动作后,这里又用了一个sleep,其实这里也可以用wait until这样的关键字的,这个看个人习惯,不论用哪一个等待,这个地方都是要等几秒中才能进行下一步操作的,原因同上。

  unselect frame:这个是和select frame同对出现的,使用了select frame关键字之后,在跳出这个格式以后,一定要释放掉。

  Element should be enabled:这是登录成功后的一个验证,验证页面是否跳转到了我们所期望的页面中去,那么这里的所对应的第二列的元素位置就是跳转以后可以代表这个页面的的一个元素的位置。

  好了,用selenium库进行webui页面测试的相关内容就给大家介绍到这里。最后再给大家说一下,selenium库关键字有很多,要用哪个,怎么用记不住的话,可以在ride用例编写页面按F5 键查看哦。



作者:薇薇   

来源:http://www.51testing.com/html/45/n-4479945.html


2021 问卷礼物图.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在JMeter中有两种类型的处理器,即“前置处理器”和“后置处理器”,主要用来对其覆盖范围内采样器请求和响应的内容进行修改或截获。  【前置处理器】  “前置处理器”,又称预处理器,可以在我们发出“请求”之前执行一些相关操作。例如,假设我们需要通过JMeter爬取被测站点的所有链接并随意点击任意链接,检查其有效性,这就可以通过JMeter前置处理器中的“HTML Link Parser”来实现,该前置处理器会对指定主机/域名上所有链接进行解析和验证。  【前置处理器DEMO】  在针对服务端做压测时,我们往往需要有这样的工作场景,多个虚拟用户并发访问服务端,但每个用户请求的URL各不相同,...
            5 7 1277
            分享
          • 通常我们在谈论性能测试的时候,往往将性能测试分为压力测试和负载测试两大类去讨论,在设计性能测试方案和执行性能测试过程的时候,也是基于这两个角度去思考。在传统意义上,通过这两个手段去评估某个系统的性能表现已经很完美了。但是随着大数据互联网、移动互联网等新兴概念的兴起,传统的性能测试概念、方法已经无法全面的引导我们开展性能测试工作。比如移动端的兴起与广泛应用,移动端的性能也是性能测试的范围;再比如如何评估系统扩展性、弹性性能表现相关的容量测试,也要我们去关注。因为公司最近做服务端容量的相关工作,因此我们就性能测试,容量评估两个角度去重新定义性能测试的工作范围和职责。1、性能测试性能测试的最终目的是...
            0 0 4937
            分享
          • 众所周知,事务是一个实体——通常是一组 SQL 语句,或者语句和存储过程调用的组合,应该全部执行或不执行。例如,如果一个事务有 4 个语句 - S1 到 S4 并且例如 - S4 抛出一些错误可能是由于不正确的语法或访问或任何功能问题,那么语句 S1 到 S3 将被回滚并且数据库将到达它的原始状态,好像没有执行任何语句。理解 MySQL TRANSACTION 的最佳示例是同一家银行的 2 个账户之间的汇款。想象一下,如果没有 TRANSACTION,这将如何工作?假设借记成功,但贷记没有发生,可能是因为一些数据库问题。在这种情况下,数据库将处于不一致的状态。因此,在这种情况下,客户的账户会借...
            0 0 795
            分享
          •   ChatGPT的技术分析  ChatGPT是一种强大的自然语言处理工具,它彻底改变了我们与机器交互的方式。在本文中,我们将探讨ChatGPT的技术方面及其对人工智能领域的影响。  什么是ChatGPT?  ChatGPT是由OpenAI开发的开源语言模型,它使用深度学习生成类似于人类对文本提示的回复。它基于GPT(生成式预训练转换器)架构,这是一种已经在大量文本数据上进行了预训练的神经网络。  ChatGPT如何工作?  ChatGPT通过使用称为“无监督学习”的过程来分析大量的文本数据并学习语言模式。然后,它使用这些知识来生成对文本提示的回复。  该模型是在大量文本数据集上进行训练的,例...
            0 0 872
            分享
          •   Selenium是当前最流行的Web UI自动化测试框架,熟悉Selenium的人也知道,Selenium是基于WebDriver。那么能不能不用Selenium,直接调用WebDriver来实现Web UI自动化呢?答案当然是可以的,本文就带你来实现基于WebDriver的Web U自动化。本文通过调用Selenium、Curl命令、直接调用ChromeDriver三种方式,实现了同样的功能。编程语言为C#,已在Visual Studio 2019测试通过,其他主流编程语言也可以完成同样功能。对比三种实现方式,大家就可以容易的理解如何不用Selenium而直接调用WebDriver完成W...
            12 12 778
            分享
      • 51testing软件测试圈微信