summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 05:17:18 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 05:17:18 +0000
commit71505556255c20efdf95d407c243620c2ffad52e (patch)
tree3d676fe2be2788baa3dd4c8af8e3efe6e7a41b48
parent35fe04ea30bbf112dbbec91a7f092e4d580cecbc (diff)
automatic import of python-rtsf-webopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-rtsf-web.spec474
-rw-r--r--sources1
3 files changed, 476 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8448f37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/rtsf-web-1.3.5.tar.gz
diff --git a/python-rtsf-web.spec b/python-rtsf-web.spec
new file mode 100644
index 0000000..272a9f8
--- /dev/null
+++ b/python-rtsf-web.spec
@@ -0,0 +1,474 @@
+%global _empty_manifest_terminate_build 0
+Name: python-rtsf-web
+Version: 1.3.5
+Release: 1
+Summary: only for web ui test, base on rtsf
+License: MIT
+URL: https://github.com/RockFeng0/rtsf-web
+Source0: https://mirrors.aliyun.com/pypi/web/packages/05/84/8e8d48d8495859ecf66f815b4efbb0c8049902bfa8facaf500949db4293f/rtsf-web-1.3.5.tar.gz
+BuildArch: noarch
+
+Requires: python3-selenium
+Requires: python3-requests
+Requires: python3-rtsf
+
+%description
+Chrome |[chromedriver(.exe)](http://chromedriver.storage.googleapis.com/index.html)
+Internet Explorer |[IEDriverServer.exe](http://selenium-release.storage.googleapis.com/index.html)
+Edge |[MicrosoftWebDriver.msi](http://go.microsoft.com/fwlink/?LinkId=619687)
+Firefox 47+ |[geckodriver(.exe)](https://github.com/mozilla/geckodriver/releases/)
+PhantomJS |[phantomjs(.exe)](http://phantomjs.org/)
+Opera |[operadriver(.exe)](https://github.com/operasoftware/operachromiumdriver/releases)
+Safari |[SafariDriver.safariextz](http://selenium-release.storage.googleapis.com/index.html)
+**selenium-server** |[selenium-server-standalone.jar](http://selenium-release.storage.googleapis.com/index.html)
+### 安装rtsf-web
+pip install rtsf-web
+## 简单使用
+使用rtsf-web简化selenium的使用
+1. 本地浏览器驱动
+```
+import webuidriver
+driver = webuidriver.Chrome() # 返回的driver 是selenium原生对象
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+# until_find.element_by_id(value, timeout=10, wait_displayed=False),返回selenium WebElement原生对象
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+# until_find.elements_by_css_selector(value, index=0, timeout=10),返回selenium WebElement原生对象, 默认返回index指定元素
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+2. 分布式浏览器驱动(selenium grid)
+```
+# PC A(192.168.1.1) 运行命令: wrhub.exe selenium-server-standalone-3.14.0.jar --port 4444
+# PC B(192.168.1.2) 运行命令: wrnode.exe selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.1.1 --hub-port 4444
+import webuidriver
+from webuidriver.remote.SeleniumHatch import SeleniumHatch
+executors = SeleniumHatch.get_remote_executors("192.168.1.1", 4444)
+chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities(browser="chrome")
+driver = webuidriver.Remote(executors[0], desired_capabilities=chrome_capabilities)
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+3. 给浏览器添加参数(Options)
+```
+import webuidriver
+from webuidriver.chrome.options import ChromeArguments
+opt = webuidriver.ChromeOptions()
+opt.add_argument(ChromeArguments.NO_IMAGES) # 禁用图片加载
+opt.add_argument(ChromeArguments.HEADLESS) # 无界面模式
+opt.add_argument(ChromeArguments.INCOGNITO) # 隐身模式
+opt.add_argument(ChromeArguments.WINDOW_SIZE) # 置窗口尺寸(1024x650)
+opt.add_argument(ChromeArguments.DISABLE_GPU) # 禁用gpu渲染
+driver = webuidriver.Chrome(options=opt)
+# driver = webuidriver.Remote(executor, desired_capabilities=opt.to_capabilities())
+```
+## 详细介绍
+介绍如何使用rtsf-web进行YAML格式web UI的自动化测试用例编写,rtsf-web是rtsf框架的插件,所以,基本遵循rtsf的YAML格式约定。
+[查看rtsf项目用法](https://github.com/RockFeng0/rtsf)
+## 命令介绍
+安装完成后,有两个命令用于执行yaml测试用例:
+- wldriver命令,web localhost driver,一般情况下,都是用这个命令执行yaml用例
+- wrdriver命令,web remote driver, 分布式部署的grid模式下,使用该命令运行yaml用例,它可以指定任意hub中的所有node机器,并在所有这些机器上运行用例。
+安装完成后,有两个命令用于部署selenium grid模式:
+- wrhub命令,设置运行该命令的当前pc为一个hub,允许node机器接入
+- wrnode命令, 设置运行该命令的当前pc为一个node,需要接入一个hub
+### 命令参数介绍
+使用命令前,几个注意事项:
+1. 执行前,注意下selenium的执行环境, rtsf-web限定了两中浏览器(chrome和firefox)
+2. 谷歌浏览器,按照selenium的文档介绍,自行下载chromedriver.exe并配置
+3. 火狐浏览器,按照selenium的文档介绍,版本高的,自行下载geckodriver.exe并配置
+#### wldriver(web local driver)本地执行
+wldriver直接使用selenium webdriver中各个浏览器的驱动,比如webdriver.Chrome等
+查看帮助: wldriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+![wldriver-h.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wldriver-h.png)
+#### wrhub
+简单理解下hub, 玩局域网游戏,我们先要建立主机,那么hub可以理解为主机的概念
+查看帮助: wrhub -h
+选填:
+- 设置HUB监听端口,默认是4444: --port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start hub A: 192.168.0.1
+wrhub c:\selenium-server-standalone-3.14.0.jar --port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrhub-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrhub-command.png)
+#### wrnode
+简单理解下node, 游戏主机创建好,玩家需要加入,那么node可以理解为加入主机的玩家
+查看帮助: wrnode -h
+选填:
+- 设置NODE监听端口,默认是5555: --port 5555
+- 执行连接hub的ip,默认是localhost: --hub-ip 127.0.0.1
+- 执行连接hub的,默认是4444: --hub-port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start node B: 192.168.0.1 这个node机器的ip跟hub A一样,主机也可以是玩家
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+# start node C: 192.168.0.2
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrnode-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrnode-command.png)
+#### wrdriver(web remote driver)远程执行
+wrdriver是指使用webdriver.Remote驱动各个selenium grid模式下的浏览器进行测试
+查看帮助: wrdriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+- 设置HUB IP,默认是localhost: --ip 127.0.0.1
+- 设置HUB PORT,默认是4444: --port 4444
+```
+# run web remote case. 简单理解, 已连接上主机的玩家,会接收到test_case游戏
+wrdriver C:\f_disk\BaiduNetdiskDownload\rtsf-web\tests\data\test_case.yaml --browser chrome --ip 192.168.0.1 --port 4444
+```
+简单理解下,创建了主机,玩家也上线了,wrdriver将指定的游戏异步发送给这些玩家
+![wrdriver-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrdriver-command.png)
+## rtsf-web的约定
+依据rtsf的yaml约定模板,我们在steps中,为rtsf-http约定了一个规则,以便识别为Web UI自动化测试, 如下
+```
+steps:
+ - webdriver:
+ by:
+ value:
+ index:
+ timeout:
+ action:
+ - webdriver:
+ action:
+```
+> action必填,其他选填; 其中by的值依据selenium为: id、xpath、link text、partial link text、name、tag name、class name、css selector
+## rtsf-web常用的yaml函数
+### Web methods --> 用于操作浏览器
+
+%package -n python3-rtsf-web
+Summary: only for web ui test, base on rtsf
+Provides: python-rtsf-web
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-rtsf-web
+Chrome |[chromedriver(.exe)](http://chromedriver.storage.googleapis.com/index.html)
+Internet Explorer |[IEDriverServer.exe](http://selenium-release.storage.googleapis.com/index.html)
+Edge |[MicrosoftWebDriver.msi](http://go.microsoft.com/fwlink/?LinkId=619687)
+Firefox 47+ |[geckodriver(.exe)](https://github.com/mozilla/geckodriver/releases/)
+PhantomJS |[phantomjs(.exe)](http://phantomjs.org/)
+Opera |[operadriver(.exe)](https://github.com/operasoftware/operachromiumdriver/releases)
+Safari |[SafariDriver.safariextz](http://selenium-release.storage.googleapis.com/index.html)
+**selenium-server** |[selenium-server-standalone.jar](http://selenium-release.storage.googleapis.com/index.html)
+### 安装rtsf-web
+pip install rtsf-web
+## 简单使用
+使用rtsf-web简化selenium的使用
+1. 本地浏览器驱动
+```
+import webuidriver
+driver = webuidriver.Chrome() # 返回的driver 是selenium原生对象
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+# until_find.element_by_id(value, timeout=10, wait_displayed=False),返回selenium WebElement原生对象
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+# until_find.elements_by_css_selector(value, index=0, timeout=10),返回selenium WebElement原生对象, 默认返回index指定元素
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+2. 分布式浏览器驱动(selenium grid)
+```
+# PC A(192.168.1.1) 运行命令: wrhub.exe selenium-server-standalone-3.14.0.jar --port 4444
+# PC B(192.168.1.2) 运行命令: wrnode.exe selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.1.1 --hub-port 4444
+import webuidriver
+from webuidriver.remote.SeleniumHatch import SeleniumHatch
+executors = SeleniumHatch.get_remote_executors("192.168.1.1", 4444)
+chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities(browser="chrome")
+driver = webuidriver.Remote(executors[0], desired_capabilities=chrome_capabilities)
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+3. 给浏览器添加参数(Options)
+```
+import webuidriver
+from webuidriver.chrome.options import ChromeArguments
+opt = webuidriver.ChromeOptions()
+opt.add_argument(ChromeArguments.NO_IMAGES) # 禁用图片加载
+opt.add_argument(ChromeArguments.HEADLESS) # 无界面模式
+opt.add_argument(ChromeArguments.INCOGNITO) # 隐身模式
+opt.add_argument(ChromeArguments.WINDOW_SIZE) # 置窗口尺寸(1024x650)
+opt.add_argument(ChromeArguments.DISABLE_GPU) # 禁用gpu渲染
+driver = webuidriver.Chrome(options=opt)
+# driver = webuidriver.Remote(executor, desired_capabilities=opt.to_capabilities())
+```
+## 详细介绍
+介绍如何使用rtsf-web进行YAML格式web UI的自动化测试用例编写,rtsf-web是rtsf框架的插件,所以,基本遵循rtsf的YAML格式约定。
+[查看rtsf项目用法](https://github.com/RockFeng0/rtsf)
+## 命令介绍
+安装完成后,有两个命令用于执行yaml测试用例:
+- wldriver命令,web localhost driver,一般情况下,都是用这个命令执行yaml用例
+- wrdriver命令,web remote driver, 分布式部署的grid模式下,使用该命令运行yaml用例,它可以指定任意hub中的所有node机器,并在所有这些机器上运行用例。
+安装完成后,有两个命令用于部署selenium grid模式:
+- wrhub命令,设置运行该命令的当前pc为一个hub,允许node机器接入
+- wrnode命令, 设置运行该命令的当前pc为一个node,需要接入一个hub
+### 命令参数介绍
+使用命令前,几个注意事项:
+1. 执行前,注意下selenium的执行环境, rtsf-web限定了两中浏览器(chrome和firefox)
+2. 谷歌浏览器,按照selenium的文档介绍,自行下载chromedriver.exe并配置
+3. 火狐浏览器,按照selenium的文档介绍,版本高的,自行下载geckodriver.exe并配置
+#### wldriver(web local driver)本地执行
+wldriver直接使用selenium webdriver中各个浏览器的驱动,比如webdriver.Chrome等
+查看帮助: wldriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+![wldriver-h.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wldriver-h.png)
+#### wrhub
+简单理解下hub, 玩局域网游戏,我们先要建立主机,那么hub可以理解为主机的概念
+查看帮助: wrhub -h
+选填:
+- 设置HUB监听端口,默认是4444: --port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start hub A: 192.168.0.1
+wrhub c:\selenium-server-standalone-3.14.0.jar --port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrhub-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrhub-command.png)
+#### wrnode
+简单理解下node, 游戏主机创建好,玩家需要加入,那么node可以理解为加入主机的玩家
+查看帮助: wrnode -h
+选填:
+- 设置NODE监听端口,默认是5555: --port 5555
+- 执行连接hub的ip,默认是localhost: --hub-ip 127.0.0.1
+- 执行连接hub的,默认是4444: --hub-port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start node B: 192.168.0.1 这个node机器的ip跟hub A一样,主机也可以是玩家
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+# start node C: 192.168.0.2
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrnode-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrnode-command.png)
+#### wrdriver(web remote driver)远程执行
+wrdriver是指使用webdriver.Remote驱动各个selenium grid模式下的浏览器进行测试
+查看帮助: wrdriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+- 设置HUB IP,默认是localhost: --ip 127.0.0.1
+- 设置HUB PORT,默认是4444: --port 4444
+```
+# run web remote case. 简单理解, 已连接上主机的玩家,会接收到test_case游戏
+wrdriver C:\f_disk\BaiduNetdiskDownload\rtsf-web\tests\data\test_case.yaml --browser chrome --ip 192.168.0.1 --port 4444
+```
+简单理解下,创建了主机,玩家也上线了,wrdriver将指定的游戏异步发送给这些玩家
+![wrdriver-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrdriver-command.png)
+## rtsf-web的约定
+依据rtsf的yaml约定模板,我们在steps中,为rtsf-http约定了一个规则,以便识别为Web UI自动化测试, 如下
+```
+steps:
+ - webdriver:
+ by:
+ value:
+ index:
+ timeout:
+ action:
+ - webdriver:
+ action:
+```
+> action必填,其他选填; 其中by的值依据selenium为: id、xpath、link text、partial link text、name、tag name、class name、css selector
+## rtsf-web常用的yaml函数
+### Web methods --> 用于操作浏览器
+
+%package help
+Summary: Development documents and examples for rtsf-web
+Provides: python3-rtsf-web-doc
+%description help
+Chrome |[chromedriver(.exe)](http://chromedriver.storage.googleapis.com/index.html)
+Internet Explorer |[IEDriverServer.exe](http://selenium-release.storage.googleapis.com/index.html)
+Edge |[MicrosoftWebDriver.msi](http://go.microsoft.com/fwlink/?LinkId=619687)
+Firefox 47+ |[geckodriver(.exe)](https://github.com/mozilla/geckodriver/releases/)
+PhantomJS |[phantomjs(.exe)](http://phantomjs.org/)
+Opera |[operadriver(.exe)](https://github.com/operasoftware/operachromiumdriver/releases)
+Safari |[SafariDriver.safariextz](http://selenium-release.storage.googleapis.com/index.html)
+**selenium-server** |[selenium-server-standalone.jar](http://selenium-release.storage.googleapis.com/index.html)
+### 安装rtsf-web
+pip install rtsf-web
+## 简单使用
+使用rtsf-web简化selenium的使用
+1. 本地浏览器驱动
+```
+import webuidriver
+driver = webuidriver.Chrome() # 返回的driver 是selenium原生对象
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+# until_find.element_by_id(value, timeout=10, wait_displayed=False),返回selenium WebElement原生对象
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+# until_find.elements_by_css_selector(value, index=0, timeout=10),返回selenium WebElement原生对象, 默认返回index指定元素
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+2. 分布式浏览器驱动(selenium grid)
+```
+# PC A(192.168.1.1) 运行命令: wrhub.exe selenium-server-standalone-3.14.0.jar --port 4444
+# PC B(192.168.1.2) 运行命令: wrnode.exe selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.1.1 --hub-port 4444
+import webuidriver
+from webuidriver.remote.SeleniumHatch import SeleniumHatch
+executors = SeleniumHatch.get_remote_executors("192.168.1.1", 4444)
+chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities(browser="chrome")
+driver = webuidriver.Remote(executors[0], desired_capabilities=chrome_capabilities)
+driver.get("http://www.baidu.com")
+driver.web_driver_wait(timeout=10).until(lambda dr: dr.title == "百度一下,你就知道") # WebDriverWait.until
+driver.until_find.element_by_id("kw").send_keys("hello world.")
+driver.until_find.elements_by_css_selector("input.bg.s_btn").click()
+driver.close()
+driver.quit()
+```
+3. 给浏览器添加参数(Options)
+```
+import webuidriver
+from webuidriver.chrome.options import ChromeArguments
+opt = webuidriver.ChromeOptions()
+opt.add_argument(ChromeArguments.NO_IMAGES) # 禁用图片加载
+opt.add_argument(ChromeArguments.HEADLESS) # 无界面模式
+opt.add_argument(ChromeArguments.INCOGNITO) # 隐身模式
+opt.add_argument(ChromeArguments.WINDOW_SIZE) # 置窗口尺寸(1024x650)
+opt.add_argument(ChromeArguments.DISABLE_GPU) # 禁用gpu渲染
+driver = webuidriver.Chrome(options=opt)
+# driver = webuidriver.Remote(executor, desired_capabilities=opt.to_capabilities())
+```
+## 详细介绍
+介绍如何使用rtsf-web进行YAML格式web UI的自动化测试用例编写,rtsf-web是rtsf框架的插件,所以,基本遵循rtsf的YAML格式约定。
+[查看rtsf项目用法](https://github.com/RockFeng0/rtsf)
+## 命令介绍
+安装完成后,有两个命令用于执行yaml测试用例:
+- wldriver命令,web localhost driver,一般情况下,都是用这个命令执行yaml用例
+- wrdriver命令,web remote driver, 分布式部署的grid模式下,使用该命令运行yaml用例,它可以指定任意hub中的所有node机器,并在所有这些机器上运行用例。
+安装完成后,有两个命令用于部署selenium grid模式:
+- wrhub命令,设置运行该命令的当前pc为一个hub,允许node机器接入
+- wrnode命令, 设置运行该命令的当前pc为一个node,需要接入一个hub
+### 命令参数介绍
+使用命令前,几个注意事项:
+1. 执行前,注意下selenium的执行环境, rtsf-web限定了两中浏览器(chrome和firefox)
+2. 谷歌浏览器,按照selenium的文档介绍,自行下载chromedriver.exe并配置
+3. 火狐浏览器,按照selenium的文档介绍,版本高的,自行下载geckodriver.exe并配置
+#### wldriver(web local driver)本地执行
+wldriver直接使用selenium webdriver中各个浏览器的驱动,比如webdriver.Chrome等
+查看帮助: wldriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+![wldriver-h.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wldriver-h.png)
+#### wrhub
+简单理解下hub, 玩局域网游戏,我们先要建立主机,那么hub可以理解为主机的概念
+查看帮助: wrhub -h
+选填:
+- 设置HUB监听端口,默认是4444: --port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start hub A: 192.168.0.1
+wrhub c:\selenium-server-standalone-3.14.0.jar --port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrhub-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrhub-command.png)
+#### wrnode
+简单理解下node, 游戏主机创建好,玩家需要加入,那么node可以理解为加入主机的玩家
+查看帮助: wrnode -h
+选填:
+- 设置NODE监听端口,默认是5555: --port 5555
+- 执行连接hub的ip,默认是localhost: --hub-ip 127.0.0.1
+- 执行连接hub的,默认是4444: --hub-port 4444
+- 指定java.exe路径,默认(已配置java环境变量): --java-path java
+```
+# start node B: 192.168.0.1 这个node机器的ip跟hub A一样,主机也可以是玩家
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+# start node C: 192.168.0.2
+wrnode c:\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\tmp\Java\jdk1.8.0_161\bin\java.exe
+```
+![wrnode-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrnode-command.png)
+#### wrdriver(web remote driver)远程执行
+wrdriver是指使用webdriver.Remote驱动各个selenium grid模式下的浏览器进行测试
+查看帮助: wrdriver -h
+选填:
+- 设置浏览器(chrome、firefox),默认是谷歌浏览器: --browser chrome
+- 设置浏览器下载文件的路径,默认值是浏览器的设置: --download-path c:\downloads
+- 设置火狐是否使用geckodriver.exe,默认值是False: --marionette False
+- 设置HUB IP,默认是localhost: --ip 127.0.0.1
+- 设置HUB PORT,默认是4444: --port 4444
+```
+# run web remote case. 简单理解, 已连接上主机的玩家,会接收到test_case游戏
+wrdriver C:\f_disk\BaiduNetdiskDownload\rtsf-web\tests\data\test_case.yaml --browser chrome --ip 192.168.0.1 --port 4444
+```
+简单理解下,创建了主机,玩家也上线了,wrdriver将指定的游戏异步发送给这些玩家
+![wrdriver-command.png](https://github.com/RockFeng0/img-folder/blob/master/rtsf-web-img/wrdriver-command.png)
+## rtsf-web的约定
+依据rtsf的yaml约定模板,我们在steps中,为rtsf-http约定了一个规则,以便识别为Web UI自动化测试, 如下
+```
+steps:
+ - webdriver:
+ by:
+ value:
+ index:
+ timeout:
+ action:
+ - webdriver:
+ action:
+```
+> action必填,其他选填; 其中by的值依据selenium为: id、xpath、link text、partial link text、name、tag name、class name、css selector
+## rtsf-web常用的yaml函数
+### Web methods --> 用于操作浏览器
+
+%prep
+%autosetup -n rtsf-web-1.3.5
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-rtsf-web -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.5-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a4efe41
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+527a978c634a53026a4aa9f91e8f430f rtsf-web-1.3.5.tar.gz