- 博客(57)
- 资源 (1)
- 收藏
- 关注
原创 RemoteWebDriver 远程启动Driver版本问题
在远程机器上重新启动server, 加上参数java -Dwebdriver.chrome.driver="D:\Flash\FlashUIA-2.0\src\test\resources\chromedriver.exe" -jar selenium-server-4.15.0.jar standalone,Dwebdriver.chrome.driver指定了远程机器上正确的driver路径。再次尝试远程机器可以正常启动浏览器了!由于系统部署原因,本地调试UI自动化脚本的时候,页面加载非常慢!
2023-11-15 12:03:51
447
转载 Linux-在linux修改文件夹及其子文件夹的权限
加入-R参数,就可以将读写权限传递给子文件夹例如chmod -R777 /public_html那么public_html文件夹和它下面的所有子文件夹的属性都变成了777.777是读、写、执行权限...
2020-06-30 17:29:48
750
转载 remote: HTTP Basic: Access denied fatal: Authentication failed for
使用git clone命令克隆gitlab上面的项目的时候,出现了remote: HTTP Basic: Access denied fatal: Authentication failed for类似字眼的错误其实搜索这个报错网上就有很多资料比如 –>https://stackoverflow.com/questions/44514728/http-basic-access-denied-fatal-authentication-failed大体的意思在管理员状态下的cmd输入git...
2020-06-30 08:55:36
6439
1
转载 linux在线安装mysql
https://www.cnblogs.com/zkhbalance/p/9084807.html如果root远程有密码 最后一步GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' , 123456设置的密码
2020-06-04 15:33:40
207
原创 Testng 执行maven程序无法取得自定义环境变量问题
我们的自动化测试框架使用mave来创建项目并进行管理的。当我导入项目后,执行testng的xml的时候,总是报空指针错误!在代码中发现是无法取到系统环境变量,而这个环境变量是在mave的pom文件里自定义的。如果通过maven test来执行是没有问题的。但是testng执行就始终无法获取这个环境变量。网上几乎全是通过maven test来执行,没发现testng执行的方法。自己研...
2019-03-28 11:34:13
659
原创 解决Ubuntu下mysql-workbench无法连接mysql的问题
在linux下安装完成mysql,通过执行service mysql start 确保mysql是启动的。在终端执行sudo apt-get install mysql-workbench在线安装mysql-workbench。安装完成后执行mysql-workbench,启动图形界面,但是却无法连接。在终端执行mysql -u root 却能进入mysql,说明mysql服务器是启动的。需要执行...
2019-01-04 23:32:25
6817
2
原创 Redis消息队列在分布式自动化测试中的应用
在我们最初学习和使用selenium进行自动化的时候,肯定都是在本地IDE中进行脚本编写和执行脚本。最常用的执行方式就是使用单元测试框架,如java的testng,ruby的rspec,python的unittest。当我们在IDE中执行的时候其实是多个用例串行执行的,如果进行单元测试,其实这样做是无所谓的。毕竟代码级别的执行效率是很快的。再多的用例很快也能执行完成。但是如果是执行UI自动化脚本,...
2018-12-27 16:04:58
805
转载 Ubuntu解决安装rails时出现 ERROR: Failed to build gem native extension. 的问题
在Ubuntu 中装rails的时候报错:Building native extensions. This could take a while...ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.5...
2018-12-26 11:50:47
7838
1
原创 浅谈国内软件测试面试怪象
从业十余年,自己被面试过很多次,也面试过很多人。我相信大多数测试从业人员都遇到过这样的现象。打开招聘信息或者面试完后,发现这哪里是在招测试,分明是在招架构师嘛。面试的时候感觉是要去造火箭,进入工作后发现只是磨菜刀。我总有一种感觉,大家对测试的要求不明确,对测试定位不明确。 在我参加过的面试中,唯有一家美国公司的自动化测试招聘面试,让我觉得是真正抓住了测试的重点。在...
2018-11-29 16:03:33
319
原创 Loadrunner Analysis Summary数据与Average Response Time里显示不一致的问题分析
相信这个问题很多人使用loadrunner的时候会感到很困惑。我起初也很困惑,网上查询很多人的描述也无法得到满意的答案。但是大多数说的是采用时间的设置造成的,于是我自己动手实验了一下。上图是Analysis Summary的数据。下图是Average Response Time里的数据。明显两个数据不一致。查看左边的采样时间是15s 当我把采样时间设置为1s的...
2018-11-28 17:08:32
1745
转载 Windows开启winrm服务
转载自:https://www.cnblogs.com/weloveshare/p/5753139.html因为进行远程powershell管理必须需要启用winrm的服务,所以需要在windows平台上启用winrm服务winrm service 默认都是未启用的状态,先查看状态;如无返回信息,则是没有启动;winrm enumerate winrm/config/listener...
2018-09-30 11:54:56
21559
6
原创 redis在Linux下安装及远程访问配置
一、redis安装 https://redis.io/download 下载最新的安装包,上传到linux目录(我一般把文件放到opt下)下并解压。进入到解压目录。直接输入make安装可能会报错:1、如果没有装gcc,需要先输入yum-yinstallgccautomakeautoconflibtoolmake。2、使用make MALLOC=libc安装...
2018-09-29 10:11:53
291
原创 python命令行执行手记
python脚本完成后,一般调试我们直接在ide中执行,但是正式执行的时候,我们不可能总是打开ide来执行吧。所以我们一般通过命令行来执行脚本。但是在执行中发现ide执行没有问题,可是在命令行执行就会报错“ModuleNotFoundError: No module named”。需要在执行的py文件中加入curPath = os.path.abspath(os.path.d...
2018-09-27 17:35:18
241
原创 国内企业自动化测试之路
通过十余年的IT从业经验,经历了开发,手工测试,到自动化测试;经历了事业单位、国企、外企、到现在的民企。几乎每一个地方都在说自动化测试。但是自动化测试真正做起来,而且为公司做出巨大贡献的,除了在外企,其他国内企业基本只是美好的愿望,和一声叹息而已。当然也许是我没有经历过BAT这样的大厂的洗礼,并不清楚他们的测试模式。但是我的经历也能代表最普通而又是最广大的测试人员的经历。就像我在之前的文章里说过,...
2018-05-26 10:44:22
2041
1
原创 eclipse安装pyDev,并调整色彩配置以适应暗黑主题
因为用习惯了eclipse的风格,之前写Ruby用的aptana也是eclipse的布局。所以决定继续用它写Python。在eclipse上需要安装pyDev插件,推荐在线安装,输入下面的地址,全选这两个插件一直下一步就完成了。注意,要装最新版本pyDev必须是eclipse neon以上。最后一步会重启eclipse,然后在新建项目里就以后pyDev的选项如果要使用yml文件,我们还需要安装YE...
2018-05-24 14:13:48
1397
1
原创 python设置全局可访问的driver对象方法
最近项目要用Python来写自动化,我根据之前现有的Ruby框架来重写。发现一个最大的区别,全局变量,Ruby是可以全工程可见,而Python只能在当前py文件内容可见。其实在开发中我们都会要求尽量少用全局变量,以避免带来的不可预见的问题。但是在做selenium框架时,driver对象的必须全工程访问的。所以按照之前ruby的写法,$driver,一处声明,全局可用就不行了。 driver对象的...
2018-05-23 15:40:22
7801
1
原创 python3发送post请求参数为空的情况
post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。在Python代码请求,如下:...
2018-05-23 14:31:43
8641
原创 Subquery returns more than 1 row 解决方案
通过这个字面意思都能明白,就是子查询的结果不止1条。比如:select userName,roleId,(case when orgID!='' then (SELECT name FROM organization WHERE orgID=orgID) END) as orgName,(CASE WHEN bid!='' THEN(SELECT name FROM building WHERE...
2018-03-10 13:59:02
5309
转载 $.ajax()方法详解
jquery中的ajax方法参数总是记不住,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖...
2018-03-03 12:08:03
168
转载 用 Ruby 写命令行工具
用 Ruby 写命令行工具当使用 Ruby 写命令行工具的时候,我们在不借助任何内置/外置的命令行参数解析工具的情况下,可以直接从 ARGV 取到传入命令行的参数,然后手工判断,验证并执行后续操作。不过从遵循Unix的命令行工具的Convertion角度来讲,我不建议你直接从 ARGV 取数值,而是利用现有的库来作这件事情。Ruby 的标准库内置提供了一个 getopt 的 Ruby实现Getop...
2018-02-28 11:09:23
3614
1
转载 java web 服务器推送技术--comet4j
1、背景首先实现服务器推送技术一直一来是B/S应用开发的一块难题,因为是基于HTTP协议的,HTTP协议为无状态,单向性的协议,即,必须由客户端发起一个请求建立连接,服务器接收请求,把数据返回给客户端,然后释放连接。下一次,再由客户端发起另一次请求,重复上述过程。服务器始终处于"被动"地位。这种情况导致只有客户端请求,服务器才能被动响应结果,虽然HTTP协议的优势是很大的,高效,高伸缩性等。
2018-01-09 18:09:40
521
原创 自动化测试之元素操作
当定位好页面元素后,在自动化测试中就需要对该元素进行操作。在selenium中已经定义了不少方法,常用的如:click、tag_name、attribute、text、send_keys、clear、enabled?、displayed?、submit、location等等。通过字面也能理解该方法的作用,查看selenium的源码也能通过注释知道作用: # Get the text con
2017-12-05 12:34:18
806
原创 自动化测试之页面元素组织
UI自动化的基本操作就是对页面元素的操作。selenium元素的识别可通过id,name,css,class,xpath等方式来定位,而我在工作中最常用的就是xpath。xpath定位十分灵活,在一段xpath中可以使用多个标签属性来定位,如果目标元素的所有属性都一致,还可以通过父标签,祖标签,和同级标签的不同来区别定位。 一个页面进行自动化操作的第一步就是将该页面的所有元素通过某种定位方式,组
2017-11-28 12:25:06
497
转载 java.lang.Long cannot be cast to java.lang.Integer解决办法
nteger属于不可更改类型,而且Long和Integer没有任何继承关系,当然不能这样转换例如: 注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用 List list = this.getHibernateTemplate().executeFind(new Hibernat
2017-09-02 18:21:51
57025
1
原创 <c: if test="">判断无效
我们通过c标签的if来判断两个字符串是否相等<c:if test="${t=='p'} ">发现无论如何都始终是false,貌似这if没有工作。后改成以下代码,工作正常<c:if test="${t=='p'}">看出区别了吗?之前的}后面多了个空格,居然这样会影响判断。 如果我们要通过EL标签来取request.getParameter传来的值,进行下面修改<c:if test="${param
2017-08-17 22:05:07
5171
原创 selenium 处理js行为的方法
我们在进行ui自动化的时候,经常会遇到如果直接进行click操作,会发现无法点击成功。通过对浏览器的开发者工具发现其实这个click是调用了js方法的。所以在处理某些普通操作无法得到正常结果的时候,我们得通过js方式来完成。 1、js点击profile = Selenium::WebDriver::Firefox::Profile.new$driver = Selenium::WebDriver
2017-08-02 11:08:57
4772
原创 Jfinal下使用ckeditor实现上传功能
最近在用新的jfinal框架写个网站,之前用struts2 完成了ckeditor的上传功能。这次继续使用jfinal来做ckeditor的上传功能。 首先需要在controller中写上传的方法。如果我们在访问这个controller的时候不指定具体方法,默认是进入index方法。这个controller只用来上传,我们直接将方法写在index中。public class UploadContr
2017-04-02 11:56:54
884
原创 通过ruby脚本修改文件名后缀
最近做在自动化测试的时候,按照用例描述需要用notepad来打开一个excel文件,并且去检查每行数据是否正确换行。我们知道notepad一般是用来打开txt文件的。而我们做自动化测试是不会去操作某个工具打开这个文件的。所以按照这个思路,需要先改变这个excel文件成txt文件,然后用ruby本身的File.open方法打开这个txt文件,在通过each_line方法将每行数据取出存入一个数组中,再
2017-01-18 18:07:01
2612
转载 Ruby 时间日期的用法总结
date类相关 日期的格式化require 'date' day = Date::new(2010, 2, 23) p day.year #=> 2010 p day.month #=> 2 p day.day #=> 23 p day.wday #=> 2昨天, 前天require 'date' day = Date.new(2010, 2, 23)
2017-01-13 09:52:51
9803
原创 ruby将hash赋值给变量
如果将一个hash赋值给多个变量,当对某一个变量中的hash值进行修改,其他几个变量会同时变化。如:h={"a"=>"aa", "b"=>"bb", "c"=>"cc"}a=hb=hp a,b此时输出值是{"a"=>"aa", "b"=>"bb", "c"=>"cc"}{"a"=>"aa", "b"=>"bb", "c"=>"cc"}如果我们修改变量aa['a']='111'再执行P输出,则
2016-12-11 22:28:13
2140
转载 git-ssh 配置和使用
1、设置Git的user name和email:(如果是第一次的话) $ git config --global user.name "humingx" $ git config --global user.email "humingx@yeah.net"2、生成密钥 $ ssh-keygen -t rsa -C "humingx@yeah.net"连续3个
2016-12-07 17:37:17
415
原创 rails generate controller报错
在执行rails generate controller foldera index的时候报错: /Users/jli1/.rvm/gems/ruby-1.9.3-p429@global/gems/mysql2-0.3.21/lib/mysql2.rb:31:in `require’: dlopen(/Users/jli1/.rvm/gems/ruby-1.9.3-p429@global/gem
2016-10-30 23:15:13
709
原创 chrome与chromedriver 版本一致的问题
selenium 2 通过chromedriver来启动chrome进行测试。最近在升级chrome后发现通过之前的driver无法正常启动或者加载页面。提示错误: unknown error: Runtime.executionContextCreated has invalid ‘context’: {“auxData”:{“frameId”:”7016.1”,”isDefault”:true
2016-10-26 16:35:57
11393
原创 自动化测试之多类型浏览器支持
selenium 2 支持多浏览器,通过不同的driver方法来启动不同的浏览器。在设计框架的时候如果将这个考虑进去,可以很方便地在不同浏览器间切换,就可以方便地进行兼容性测试。 对浏览器的操作我们单独创建一个类Browser,startBrowser方法中加载不同driver,代码如下:public class Browser { public static WebDriver drive
2016-10-19 21:37:38
1437
原创 ruby 哈希转换成数组
最近在测试中得到的结果是哈希,而case设置的期待结果是写在数组中的。所以需要将哈希转换成数组,这样直接对比数组,一条语句就搞定了。而ruby貌似没有直接转换的方法(也许有,但是我没发现)。于是自己试着写了一个方法:def hash_to_array(hash={}) arr=[] hash.each_value do |v| arr<<v end return arren
2016-10-18 11:01:22
3325
转载 TestNG 入门教程
TestNG 入门教程国庆7天假期,大部分朋友都出去旅游了,微信圈里全是晒旅游的照片, 东南亚游,欧洲游呀,真是羡慕呀。 悲惨的我只去了上海野生动物园, 在家休息,利用这段假期,把之前学过的东西都总结下。 我前段时间加班太多了,每天忙碌工作,都没精力去管自己的学习新技能的计划, 博客也没写几篇,很多想做的事情都因为工作太忙而耽搁了。 所以工作太忙了也不好,没有精力关注工作以外的事情。
2016-10-17 13:19:37
520
原创 selenium 获得页面cookie信息
我们在做某些接口测试的时候,服务器接受客户端请求的时候要求返回客户端相应的一些cookie信息,否则不接受请求。比如客户端的接口请求要求带上客户端的jsessionid。 因为我们的测试框架是基于selenium的,为了跟同一个平台相融合。我查询了相关资料,在selenium的源码中发现Options类里就有对cookie进行相关操作的方法。 向浏览器增加cookie: def a
2016-10-12 15:21:22
4148
原创 阿里一面总结
最近突然接到猎头的邮件,说成都蚂蚁金服在招测试开发工程师,想推荐我去面试。虽然在外企待着还不错,但是能有机会接触BAT还是挺高兴的,心想不管成不成,去体验一下中国最顶级IT公司的面试也不错。于是就同意推荐。 第二天正当我下班刚下电梯的时候,突然就接到了阿里的电话,实在令我感到意外!没想到阿里的效率这么高。电话一来就开始一面了!总的来说根据你的简历经验来提问。我大概描述了一个测试框
2016-10-11 22:05:26
823
原创 自动化测试之测试数据准备
无论我们做手工测试还是自动化测试,测试数据的准备都是必须的过程。而自动化的测试数据准备又有其特殊性,就是数据的可重复利用。因为脚本的执行跟人工的最大区别就是,它只会重复地机械地执行一个动作。而它最大的好处就是,公正。如果脚本failed了,那肯定是哪里出了问题,但这个问题不一定是bug。 测试数据的准备又可以叫做测试的前提条件的准备。比如我们要测一个客户加入一个会员的业务。那么我们
2016-10-10 21:46:09
4496
原创 临时参数在接口测试中的处理
在某些业务中,会产生一些临时的变量值,当这个业务结束后这些变量也会在内存中清空。我们在发送某些接口请求的时候,请求参数要求带上这些临时的变量值。 我们一般做接口测试的时候,通过get方法,手动拼接起请求URL向服务器发送,并接收到response。而事先拼接需要的参数我们都是从之前设置好的测试数据中得到,这些数据也都是存在数据库中,所以通过sql很容易得到需要的参数值。但是这种需要在做业务时带
2016-08-17 22:38:12
1035
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人