问题的 root cause 没有 Xvfb 支持
解决方法如下
yum install Xvfb firefox Xvfb :10 -ac & export DISPLAY=:10 #start firefox, should no this error /path/firfox
问题的 root cause 没有 Xvfb 支持
解决方法如下
yum install Xvfb firefox Xvfb :10 -ac & export DISPLAY=:10 #start firefox, should no this error /path/firfox
1. 用sysdba 无口令进入sqlplus查询系统表
sqlplus / as sysdba
2. 用匿名用户登入sqlplus,此时无任何权限
sqlplus /nolog
3. 检查数据库sid 信息
我们需要检查tnsnames.ora 文件,此文件在network 文件夹下
4. 显示缓存中的命令: l or run
1) 假设之行一条sql命令后如下
select * from table1;
2) 在执行后你可以输入 ‘run’ 或者 ‘l’, the sqlplus 控制台则会显示
select * from table1;
5. 快速执行上次的命令: /
1) 假设你已经执行如下命令
select * from table1;
2) 如果再次执行, 你可以输入 ‘/’ , the sqlplus 控制台则会输出’select * from table1′;同样的结果
6. 假设你有很长记录的表,例如用select * from tab;有很多表
你可以输入:
set pause on select * from tab;
‘set pause on’ 意思是当到达显示pagesize时,则会暂停等待你输入enter键继续
7. 当你需要不同参数运行sql时用如下语句
select * from tablename where id=&myid
执行后,提示输入id值,输入后则继续执行
8. 在sql命令里加入注释,此时以多行命令输入
例如
select columna -- this is columna comment from tablename;
对于启动 selenium1 命令如下形式:
java -jar selenium-server.jar -port portnumber
例如
java -jar selenium-server.jar -port 4444
对于启动selenium3,命令如下
# Run selenium server and default node register port is 4444
# for exmple
java -jar selenium-server-standalone-3.141.5.jar -role hub
# 如果需要运行高版本的浏览器如FF且并发运行, 需要运行gecko driver node
# 注意:有时 selenium jar包和 gecko driver 程序需要匹配,保持两个高版本一致性
java -Dwebdriver.gecko.driver=/pathto/geckodriver -jar selenium-server-standalone-3.141.5.jar -role node -port 6666 -hub http://localhost:4444/grid/register
#然后可以运行csv file 在运行csv时需要 testng 和自己的xml定义文件和java code,在用 java 命令调用. 如下CustomReporter 意思是定义自己的日志输出 e.g.
java -cp .;selenium-server-standalone-3.9.1.jar;commons-csv-1.1.jar;testng-6.14.2.jar org.testng.TestNG -listener CustomReporter own.xml
#xml 内容如下作为参考
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd” >
<suite name=”Test-class Suite” parallel=”tests” >
<listeners>
<listener class-name=”CustomReporter”></listener>
</listeners>
<parameter name=”csvfilepath” value=”/csvpath” />
<parameter name=”browser” value=”FF” />
<test name=”Test-class any test name”>
<classes>
<class name=”your parsing command java class name” />
</classes>
</test>
</suite>
注意:此时我们可以以parallel模式运行csvpath目录下所有csv文件
Nomad是一种部署cluster scheduler工具,有时我们需要在本地localhost搭建环境学习怎样使用,
如下步骤是安装在ubuntu18.04下
1) 下载nomad 二进制版本 下载Nomad,并把nomad程序加入到bin目录下
2) 然后我们需要一个启动server配置文件, 如下并注意里面的注释:
then need to add bin path to execute.
# Increase log verbosity log_level = "DEBUG" # Setup data dir # to store status data data_dir = "/tmp/server1" advertise { #used for more agents rpc = "127.0.0.1:4647" serf = "127.0.0.1:4648" } # Enable the server server { #server mode enabled = true # Self-elect, should be 3 or 5 for production bootstrap_expect = 1 } #if you have not install vault, please comment all configs vault { # unseal enabled = true #vault server address address = "http://127.0.0.1:8200" #token generated by vault to access api token = "2cc25b79-b39e-e821-3e22-6d3d4d7ae7fe" }
可以保存文件名为server.hcl
3) 并且我们也需要一个带有client配置文件作为agent, 例子如下:
# Increase log verbosity log_level = "DEBUG" # Setup data dir # store the agent status data data_dir = "/tmp/client1" # Give the agent a unique name. Defaults to hostname name = "client1" # Enable the client client { #enable client enabled = true # report to nomad server servers = ["127.0.0.1:4647"] }
保存并命名为nclient.hcl
4) 之后我们就可以启动 nomad server 和 agent
打开新的命令行窗口
#start nomad as server nomad agent -config server.hcl
5) Start nomad client
打开新的命令行窗口
# Note -network-interface=lo means use internal interface nomad agent -config nclient.hcl -network-interface=lo
Then we can check http://localhost:4646 to check gui works…
附件 nomad hcl file 包括 (nserver.hcl, nclient.hcl)
由于框架迁移而发生老的系统需要运行在新的浏览器做自动化测试,并需要保持正常,面对新版浏览器,处理csv命令java脚本也需要做相应的调整……
如下一些错误发生自测试中,并得到纠正
1. 由于FFv63切换页面运行速度过快
当 WebDriverWait 无法处理等待时间时, 我们需要考虑另一个简单直接的方法等待页面的刷新, 但这种方法不是最好的,只会作为能否等待的操作.
try { Thread.sleep(seconds); } catch( Exception e) { e.printStackTrace(); }
把这段凑得放在页面刷新或者Post的之前或之后的动作,这样需要停几秒钟,一般这种情况经常发生在click 和 type 命令.
2. 元素不能点击,提示:Element is not clickable…
因为元素的位置不能合适的显示正常的位置,而click action由于被其他元素挡住,所以不可用,因为我们需要调整元素的位置
:
WebDriver driver=...; WebElement element=...; JavascriptExecutor executor = (JavascriptExecutor) driver; int eleY = element.getLocation().y +/- offset; //down or up int eleX = element.getLocation().x +/- offset; //right or left executor.executeScript("window.scrollTo(" + eleX + "," + eleY + ")"); //get element focus and enable click, some cases can skip it element.sendKeys(""); element.click();
移动到相应的位置并且点击
另一个原因是因为anchor的link像<a href…> 在FFv63 也不能被点击的情况
因此solution code 如下
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].innerHTML=arguments[1]", element, "sometext"); //change to text, so can click element.click();
替换anchor inner html text, 就可以clickable了.
3. 不能滑动view issue:Can not scroll to the view issue
一般发生在拥有长item的select标签,当点击select时it item在屏幕中看不到只能手动scroll to 出来,
但是目前方法不能支持这个操作,但有以下solution
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("window.scrollBy(0,+/- offset)", ""); // +/-:means scroll down or up to the page new Actions(driver).moveToElement(element).perform(); //use Actions to scroll to element element.click();
If select position is not good, we need to adjust first using above position solution.
如果select位置不好,首先需要重新调整,方法如上
4.Checkbox 不能被checked issue
这里我们需要用到js:
js.executeScript("document.getElementById('" + element.getAttribute("id")+ "').setAttribute('checked','checked');");
这些解决方法code最好放置在catch块中,避免影响其他case的运行,
还有多数issues,我们仍需要debug或手动操作追踪页面element