开源自动化测试平台LuckyFrame

作者:cai.ruiying [ZSK]


一、LuckyFrame简介

  LuckyFrame自动化测试平台是一款采用 AGPL 3.0开源协议的测试平台,目前已做到全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且可以支持分布式测试。LuckyFrame采用测试关键字驱动方式,可以简单高效的实现测试自动化,这在很大程度上解决了测试同学代码基础薄弱的问题。  
  同时也集成了质量管理相关的一些功能,适用于QA的日常项目过程数据的收集,并且可以展示一些基础的质量报表。  
  最新发布版本,实现客户端服务端之间使用 netty 进行通信,突破了内外网的限制,将全面支持服务端部署在云端,客户端部署在本地,并且本地启动客户端后,将会在服务端自动注册,只需要配置客户端项目,即可使用,方便快捷。

1. LuckyFrame使用流程

二、Web UI自动化

1. Web页面元素定位

(1) 定位工具

   直接使用浏览器中的查看元素功能(F12),Firefox也可使用定位工具(对版本有要求)。Chrome、Firefox、Edge、高版本IE等主流浏览器均支持元素搜索功能,低版本IE不支持元素搜索。   我们自动化测试,主要通过获取Web页面元素,并对元素对象进行操作来实现。因此,编写自动化脚本需要一定的HTML/CSS前端知识,帮助实现定位Web页面元素。

(2) 定位示例

说明:LuckyFrame支持六种定位语法,包括:id/name/xpath/linktext/tagname/cssselector。        
 
示例1-id定位
id定位表达式(包路径|定位路径):id=username
 
示例2-name定位
name定位表达式(包路径|定位路径):name=username
 
示例3-xpath定位
说明:xpath定位功能非常强大,几乎可以找到页面上的所有元素。
语法//tag[@attribute='value'] 或 //tag[text()='value’] 或 //tag[contains(@attribute,’value’)]
(1) “//”表示相对路径。下级任何子节点或者任何嵌套子节点中的一个,中间可以跳级;
(2) “@”表示选区标签的属性;
(3) “text()”表示可见文本值,文本的内容要完全匹配,包括空格等特殊符号;
(4) 定位“class”标签属性时,表达式中属性值的内容要与页面“class”属性值内容完全匹配,包括空格等特殊符号。 
 
① 
xpath定位表达式(包路径|定位路径):xpath=//input[@id='username']
 
② 
xpath定位表达式(包路径|定位路径):xpath=//a[text()='注册'] 或 xpath=//a[contains(text(),'注册')]
 

2. Web UI自动化用例语法

LuckyFrame是时下主流的一款开源自动化测试平台,能够实现Web UI、移动端、接口等多类型自动化测试。但其官方使用手册内容有限,在此根据使用经验,总结出关于Web UI用例编写的常用语法详解。
 
(1)说明:本语法使用范围:【测试管理】【用例管理】【用例步骤】,用于编写用例步骤,制定的语法规范。编写用例步骤界面如下图。
用例步骤编写要素:包|定位路径、方法|操作、参数、步骤动作、预期结果、类型、扩展字段、操作。   
“操作”可对步骤进行以下操作,如下图:

 

(2)关键字语法结构

关键字就是LuckyFrame平台中编写自动化测试用例时的页面使用说明,以Web UI自动化测试用例为例,关键字包括:步骤、包|定位路径、方法|操作、参数、步骤动作、预期结果、类型、扩展字段、操作。
下表对每个关键字用法做说明。

 

(3) 常用Web UI定位

  Web UI自动化测试,是通过对Web页面元素的抓取,再对元素进行操作的方法,实现对Web UI人工测试的模拟的,因此,围绕“方法|操作”总结部分常用的方法使用语法。对于以上9个关键字,在编写Web UI自动化测试用例时,需要使用到的包括2-6,其中5、6两项,不是必填项,等待时间、预期结果断言 可根据步骤需要灵活添加。此外,“类型”固定选择“Web UI”即可,操作中的”备注“可用于对操作步骤进行备注,以便用例调试。下面对2-4:包|定位路径、方法|操作、参数,这三项进行常用的语法说明,以供大家在编写用例时,遇到不确定的方法,可以进行查阅。

1 打开URL:
|定位路径 方法|操作 参数
/ open 要打开的URL
2 (输入框)输入:
|定位路径 方法|操作 参数
Web元素定位 sendkeys 要输入的值
3 (输入框)清除:
|定位路径 方法|操作 参数
Web元素定位 clear /
4 (对象)点击操作:
|定位路径 方法|操作 参数
Web元素定位 click /
5 获取对象文本属性值:
|定位路径 方法|操作 参数
Web元素定位 gettext /
6 关闭当前浏览器窗口:
|定位路径 方法|操作 参数
/ closewindow /
7 iframe操作:
|定位路径 方法|操作 参数 说明
iframe标签所在元素定位 gotoframe / 跳转到iframe
/ gotodefaultcontent / 跳转回默认iframe
/ gotoparentframe / 跳转到上一级iframe
8 弹窗处理:
|定位路径 方法|操作 参数 说明
/ alertaccept / 确定
/ alertdismiss / 取消
/ alertgettext / 获取文本值
9 下拉框处理:
|定位路径 方法|操作 参数 说明
下拉框元素定位 selectbyvisibletext 选项文本值 根据可见文本选择
下拉框元素定位 selectbyvalue 选项value标签属性值 根据value属性选择
下拉框元素定位 selectbyindex 选项index 根据index值选择,初始值为0
下拉框元素定位 isselect / 判断是否被选中
10 多窗口处理:
|定位路径 方法|操作 参数 说明
/ getwindowhandle 要获取的窗口序号 初始值为1
/ gotowindow 要跳转的窗口序号/句柄值  
11 鼠标移动:
|定位路径 方法|操作 参数
Web元素定位 mouseto /
12 页面滚动:
|定位路径 方法|操作 参数
Web元素定位 scrollto /
13 页面刷新
|定位路径 方法|操作 参数
Web元素定位 pagerefresh /
14 调用指定用例:
|定位路径 方法|操作 参数
/ runcase 用例编号
15 其他语法查看:   
  LuckyFrame为我们封装的方法很多,具体方法的使用,我们可以通过开源源码,进行查看。
  Web UI的方法在客户端代码中,代码路径为:luckyclient.execution.webdriver,在EncapsulateOperation.class这个类文件中,我们可以查看到封装方法的使用规则。

 

 
三、HTTP接口自动化 
1. HTTP接口自动化用例语法

说明:
(1)HTTP接口自动化测试,每个步骤都必须要关联协议模板,去构造消息头以及消息体;
(2)在步骤动作栏中,点击输入框会自动联想当前项目下所有的协议模板,选择对应的模板即可;
(3)请求的参数都必须在模板里面先构造,不能直接在用例步骤的参数列里面去构造,步骤的参数列只能去替换模板里面的默认参数值。也就是说必须得在模板里面有的参数,步骤参数才能生效去替换默认值。

关键字语法构建:
(1)|定位路径:请求URL;
(2)方法|操作:请求方法;
(3)参数:参数栏可以修改模板中的默认值,如果参数为空,则默认使用模板中定义好的默认参数,参数栏填写示例:参数名#参数值|参数名#参数值|参数名#参数值|……|;
(4)步骤动作:1#Wait表示当前步骤暂停1秒;
(5)预期结果:① 精确匹配,将用例里面【方法|操作】执行的结果,与【预期结果】字段里面的字符串进行精确匹配,直接在预期结果里面填写需要匹配的字符串即可;② 模糊匹配,将用例里面【方法|操作】执行的结果,与【预期结果】字段里面的字符串进行模糊匹配,模糊匹配: %=value;(6)类型:HTTP接口;(7)扩展字段:关联协议模板。
 
用例编写步骤:
Step1:配置协议模板
(1)新增协议模板:选择菜单 测试管理->协议模板->【添加】;
(2)输入协议模板信息:项目名称、模板名称、编码格式等信息,注意:消息头域、证书路径可根据需要填写;
(3)配置模板参数:在协议模板列表中勾选刚才新增的协议模板,点击【模板参数】进入编辑界面,输入请求报文,点击【保存】即可。
 
Step2:编写测试用例
(1)新增用例:选择菜单 测试管理->用例管理->【添加】;
(2)输入用例信息:项目名称、用例名称、用例类型、备注等信息;
(3)编写用例步骤 及 用例调试:在用例列表中勾选刚才新增的用例,点击【用例步骤】进入用例编辑界面,编辑完成后,点击【调试】,选择配置好的有效客户端,即可进行单次用例调试;
(4)调试结果查看:调试完成后,可在调试界面查看到执行日志及执行结果。
 
Step3:测试任务执行及结果查看
(1)新增测试计划:选择菜单 测试管理->测试计划->【添加】;
(2)添加计划用例:在计划列表中勾选刚才新增的计划,点击【计划用例】进入计划用例界面,勾选要执行的用例,再【保存】即可完成计划用例添加;
(3)新增测试任务:选择菜单 测试执行->任务调度->【添加】,并完成以下信息填写,包括 调度名从、项目名称、测试计划、客户端、任务类型、Cron执行表达式等;
(4)执行测试任务:在任务列表中,选择刚才新增的测试任务,点击相应的【执行】,即可执行该任务;
(5)测试结果查看:选择菜单 测试执行->任务执行,在列表中可查看刚才执行的任务结果,或者 选择菜单 测试执行->用例明细,在列表中点击刚才执行任务左侧的“➕”按钮展开查看向西直行步骤及结果。
 
至此,一个完整的HTTP接口自动化测试用例便完成了,结果直观。
 
以上就是对LuckyFrame入门使用的简介,希望能够帮助大家快速入门LuckyFrame自动化测试。
 
posted @ 2020-10-27 14:59  USTCINFO_QC  阅读(3359)  评论(0编辑  收藏  举报