flora

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2021 License: MIT Imports: 1 Imported by: 0

README

Flora

GitHub release

flora是一个用于web自动化测试中PO模式下元素管理的工具,支持以yaml配置文件的方式管理元素,并自动生成可直接执行的程序代码。

为什么使用flora?

实现PO模式时,由于页面元素数量巨大,需要编写大量的重复性代码,各种参数、注释,写得多了以后会觉得很麻烦。而且一个文件可能内容很长,也给查找元素对应代码或修改元素定位路径带来了麻烦。flora用配置文件的方式代替写代码,然后自动生成可直接粘贴到项目中的代码,从而降低编写页面类代码的难度和复杂度,并提升元素变更后的维护效率。不同团队若使用不同编程语言,也可共同维护一份配置文件,因为flora会帮助您生成各种语言的代码。没有代码能力的测试人员也可以使用flora来分担自动化测试人员的工作。

内容列表

安装

这个项目使用 golang 。如果你本地安装了golang,可以直接执行命令安装:

$ go install github.com/flora-team/flora

否则,可以直接下载可执行文件

使用说明

页面

你可以通过flora new page来创建一个页面。你需要在命令最后指定将此页面保存的位置。

$ flora new page [path]

例如执行:

$ flora new page ./page

将会有命令行交互指引你生成一个新页面。

页面的存储形式为一个文件夹和一个同名yaml文件。

你也可以不通过flora new page命令,直接手动新建一个文件夹和yaml文件来创建一个页面。

页面只有两个属性: pageName和pageDetails。它们将会影响生成代码的页面相关名称和注释。

元素

你可以通过flora new element来创建一个元素。你需要在命令最后指定将此页面保存的位置。

$ flora new element [path]

例如执行:

$ flora new element ./page/defaultPage

将会有命令行交互指引你生成一个新元素。

元素的存储形式为一个yaml文件。

你也可以不通过flora new element命令,直接手动新建一个yaml文件来创建一个页面。

元素有以下属性:

elementName: 元素名称。此属性必须与文件名相同。

elementDetails: 对此元素的描述。将生成注释。

isBaseElement: 是否是当前页面的基本元素。将用来生成判断页面是否缺失元素的代码。

locateParams: 用于元素定位的参数。

param: 参数。可以用在元素定位和函数中。param有三个属性,param(参数名),comment(参数注释)和type(参数类型)。

locatePattern: 元素定位路径。当前只支持xpath。其中可以有参数,用${param}的形式直接写在字符串中。用到的参数必须在locateParams中事先定义。

functions: 此元素挂载的函数。函数可以有多个,每个函数可定义name(函数名称)、params(参数列表)、comment(函数注释)和operation(函数行为)。

元素必须在某页面的文件夹下。一个页面下可以有多级目录,但所有元素都会直接挂载到此页面上。多级目录只是为了人工分类。

生成代码

通过flora generate命令来生成代码。

有以下参数需要指定:

--language: 需要生成的代码的语言。当前只支持java和robot。其中,生成的java代码使用selenide库。

--package: 需要生成的代码的包名。会影响代码中与包有关的部分(如java),且会影响输出目录。

--source: 源文件目录。即你的页面、元素所在目录。

--target: 输出目录。生成的代码保存的目录。默认为当前目录。

--operation: 更改默认的函数行为。例如,元素的function的operation因为要输出java代码设定为click,需要改为输出robot时,可以使用 -o click="Click Element"来使其符合robot的代码。-o可以有多个,如 -o click="Click Element" -o setValue="Input Element"。

除此之外,你可以在执行flora的目录下新建一个flora.config文件,将配置参数写入文件中,如:

language: java
package: com.baidu.test
target: pages
source: baidu

之后,只需执行flora generate,程序会自动识别当前目录的flora配置。

示例

拉取代码:

$ git clone https://github.com/flora-team/flora-examples.git

java:

$ flora generate --language java --package com.baidu.test --source baidu

robot:

$ flora generate --language robot --package . --source baidu --operation click="Wait And Click" -operation setValue="Wait And Input" --target robot

维护者

@Naughtz

如何贡献

非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。

使用许可

MIT © Naughtz

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL