这个项目放到论坛之后,有很多热心的小伙伴试用,并且在github上面也点赞和fork。感谢各位的支持!不过可能大家使用习惯的问题,遇到有什么问题,或者看到我在下面的回帖里回复了qq号,就直接加了qq进行咨询。由于工作等方面的原因,不可能实时在qq上进行回复,并且不少问题都是帖子和回复贴里有的,所以感觉沟通效率不高。
因此,现在暂时屏蔽qq号,如果对于该项目有任何使用上的疑问,欢迎通过下面的方式进行反馈:
参考帖子:
执行效果:执行单条用例:
执行用例集:
基于python+selenium的自动化测试管理、执行平台。
python3.4以上selenium:建议使用3.0以上版本mysql:建议5.5以上
基于flask进行开发,进行用例、用例集、步骤等的增删改查等功能。启动flask:
服务启动后,会启动seleniumserver,并注册到服务器中。
dockerpullselenium/hubdockerpullselenium/node-chromedockerpullselenium/node-firefox启动hub:
dockernetworkcreategriddockerrun-d-p4444:4444--netgrid--nameselenium-hubselenium/hu启动节点:
#建议NODE_MAX_INSTANCES、NODE_MAX_SESSION两个参数都设置为10,便于并发执行dockerrun-eNODE_MAX_INSTANCES=10-eNODE_MAX_SESSION=10-d--netgrid-eHUB_HOST=selenium-hubselenium/node-firefoxdockerrun-eNODE_MAX_INSTANCES=10-eNODE_MAX_SESSION=10-d--netgrid-eHUB_HOST=selenium-hubselenium/node-chrome使用说明:1.新建用例:用例步骤说明:
例子:在百度中输入selenium,并验证查询结果是否正确。
还可对用例进行如下管理:
样例:Android|com.your.packagename,点击|id@@com.your.packagename:id/btn_login,等待|2,点击|name@@GuestLogin,等待|5,截图,
Android:打开指定已安装的app(通过包名)填写:type_text点击:click(byid/name/description/class)截图:take_screenshot
由于我测试的app功能较为简单,目前只封装了这几个方法,如果需要可增加封装对应的方法。
这个功能有助于提高用例的输入效率。如下图示是如何添加一条《在百度搜索testerhome并截图》的例子:
更新说明:
使用说明:
这个可以有,支持另外开发者上传代码吗
欢迎提交到分支,合适的话我会抽空合并到主干
学习了,后期可以将macacaappiumatx等兼容进来
我这边已经集成了appium和atx(之前集成的macaca,因为感觉不稳定,替换成了appium和atx),不过这次整理的代码里没包括这块
读取关键字对应值:
调用:keywords.keywords().getPara(keyword)方法:defgetPara(self,keyword):result=0log.log().logger.info(keyword)sql=string.Template("selectparaCount,template,elementTemplatefrom`test_keyword`where`keyword`='$index'limit1;")sql=sql.substitute(index=keyword)result=useDB.useDB().search(sql)iflen(result):returnresult[0][0],result[0][1],result[0][2]else:return'','',''转换为可执行语句:
调用:conmod,element=self.convertToComend(template,paraCount,steps,elementTemplate)通过对应的模板,传入对应参数后,转换为可执行命令。转换有两种:
当步骤中描述:填写|id@@input_box@@ghw转换为命令:driver.find_element_by_id("input_box").send_keys("ghw")
defselect(self,driver,para_list):method,value,option_method,option_value=para_list[0],para_list[1],para_list[2],para_list[3]fromselenium.webdriver.support.selectimportSelectifoption_method=='index':comd='Select(driver.find_element_by_%s("%s")).select_by_%s(%s)'%(method,value,option_method,option_value)else:ifoption_method=='text_part':self.select_by_visible_text(driver.find_element(by=method,value=value),option_value)else:ifoption_method=='text':option_method='visible_text'comd='Select(driver.find_element_by_%s("%s")).select_by_%s("%s")'%(method,value,option_method,option_value)log.log().logger.info(comd)exec(comd)time.sleep(2)模板:extend.extend().select(driver,["$para1","$para2","$para3","$para4"])
步骤中描述:选择|id@@selectBox@@index@@1extend.extend().select(driver,["id","selectBox","index","1"])
感谢,回复的如此详细,大概明白了
什么时候开放集成appium和atx哈,期待。
问下哈,这边在本地部署好了,添加了测试用例,但是点击执行后就弹出提示,然后显示待执行是什么情况
已经很不错了,想知道下,执行任务那块是怎么做的呢,多线程吗??
多线程读取数据库里的用例并执行
嗯,谢谢。做得很好了
请问下,已经运行了run.py&coreserver.py两个文件,但是运行的时候直接弹层提示了success,但是显示3-无法执行,请问这个是什么情况呢?还有就是请问下,因为用的是docker里的selenium&Chrome,请问下添加节点里的ip和端口是填写selenium的还是Chrome的ip呢
已经在节点管理中添加了ip和端口,但是运行用例之后会提示这个-ERROR:nohubsisavailabe!
nohubsisavailabe就是没有可用的节点你看下是否已经启动了对应的seleniumserver,并添加到节点管理里面。
看下自动化测试》节点管理页面的节点是否是打开状态:
另外需要留意下docker里的selenium能否被你的脚本访问
添加了这个节点而且状态也是开启的,但是不知道为什么出来了两个,而且运行用例后,一个节点的状态自动变成了关闭
单独运行这个程序,也是可以调用起docker里的Chrome进行截图,但是用平台执行用例就会报错
看下你本地的app/core/buildCase.py文件第29行是否有修改过?你的代码和我GitHub上的不一致:
github上的代码:
你截图的代码:
麻烦截一下完整的错误日志和你的用例
而且当这个报错后,seleniumgridconsole中的Chrome浏览器好像被置灰不可用了
这是因为这个进程已经被占用掉了。建议启动docker的时候把最大进程设置为10,这样可以并发执行,提高使用率:sudodockerrun-eNODE_MAX_INSTANCES=10-eNODE_MAX_SESSION=10-d--netgrid-eHUB_HOST=selenium-hub-v/dev/shm:/dev/shmselenium/node-firefox-debug
这个是报错的截图和用例,感谢您的回复
检查下你的用例哦,少了步骤名称“填写”日志里也都有提示的:
现在我去找找怎么设置最大进程数应该就可以解决了
萌新请教一下,为啥我启动selenium服务的时候,会报错。。
你是在ide里运行吗?这应该是python的模块没有识别到,可以这样做:方法1:直接在ide(如pycharm)里运行,它会自动把当前目录加入到pythonpath里面进行识别方法2:在app同级,新增一个py文件:
fromapp.coreimportcoreservicecoreservice.coreservice()然后直接运行这个文件,应该就没有这个问题
我已经在github上传了core.py这个文件,用来启动coreservice.py服务
为啥显示的执行结果是3-无法执行。。。
大神。。最新的回复没权限看不见。。
看日志,没有可执行的节点,也就是没有可以用的seleniumServer不小心勾了仅楼主可见
请教一下。。那我在服务端启动时,如何配置呢?
服务端?服务器吗?如果是linux就写个sh,Windows就写个bat启动脚本就好
额。就是启动server.py的时候。。提示没有可执行节点。。
看下这段,需要另外启动seleniumserver,并且添加到节点管理里面。
大神,报这个错是啥意思?
截图看得不是很清晰,最好拿具体的错误信息去搜一下。看起来应该是你的seleniumserver版本不兼容。
是指和我的jdk版本不兼容吗??
seleniumserver版本你的selenium节点是怎么启动的?java-jarselenium.xxx.jar这种方式吗?看下这个jar包是什么版本的
为什么执行用例的时候,只提示sucess,然后并没有启动浏览器执行用例?
1、coreservice是否已启动2、是否已启动可用的selenium节点
1、启动coreservice的时候提示Processfinishedwithexitcode-1073741819(0xC0000005)不知道什么问题;2、启动了这三个文件run.py、service.py、client.py,算不算启动了可用的selenium节点?
把你的coreservice报错截图来看看?另外说明一下几个文件的启动顺序:
pythonclient.py提示错误:othersystemisnotsupportedyet!
你的是啥系统?我好像暂时只写了支持Windows
大佬,这个问题咋整~
win10下的selenium环境问题吧,没遇到过,建议搜一下
已经解决了,谢谢楼主!ChromeDriver没有被检测到修改coredriver.py的driver=webdriver.remote.webdriver.WebDriver(command_executor=server_url,desired_capabilities=desired_caps_web)为driver=webdriver.Chrome()
我一直想做一个这平台,但一想到做,就觉得HTML,js,css基础不好,搞不定
其实用flask和bootstrap,基本不用涉及CSS,html和js也不难
作者您好。请问运行命令pythonrun.py后登陆页面会提示请求出错是什么原因?
上次提交漏了提交配置文件,可以更新一下autotest_platform/app/config.py文件:
原因是配置自动名字没同步,所以没连上数据库。修改一下就好
后面再努力去实践一下,谢谢
请问调用公共用例怎么不能执行?单独运行是可以的
看下你的公共用例名称是否正确
公共用例名称是正确的。
你的公共方法里是不是漏了chrome这一步?
找到原因了,是因为我没把Chrome删掉。。。
应该是之前的bug,前几天做了优化没来得及提交。麻烦更新以下几个文件试试看:
感谢楼主,android的关键字方法,什么时候能与web的通用啊。
应该是通用的格式啊,不过android我用的不多,所以对应的关键字封装的目前只有点击、填写、截图、等待等几个
等待,提示元素没有定义怎么同时跑多个设备呢
出错的是点击文字,这个方法我在android下是没封装的,可以用点击|name@@XXX来替代;
同时跑多个设备,需要先新建测试用例集,然后关联用例时选择需要执行的设备列表,然后再点击关联
等待,执行失败
格式错啦,是等待|5
to1.只有测试用例集(自动化测试》testsuite)执行完才会生成对应报告和发邮件,否则每条用例执行都发一次邮件通知就太频繁了。
看上面的回复
收到,感谢楼主。1、在尝试进行公司管理后台的用例编写,但是很多点击方法都没有成功,最后采用“前往”才进入‘用户管理’页面。2、列表信息中,操作菜单内的功能按钮,关键字方法中,没找到具体定位方法
我们的菜单也是类似这样的结构,我对应的解决方法是:
以上方案实在不行的话,可以考虑用xpath的相对路径定位。
感谢解答,我去尝试下。
2018-11-16更新:
数据表不存在,看下init.sql的数据是否已经导入到你的数据库里面
数据表不存在,看下init.sql的数据是否已经导入到你的数据库里面。
对对,下午的时候没仔细看,直接来问,后来解决了忘记回来删除,麻烦麻烦!!!
图片上传和弹出浮层的选择框用什么方法,我试了一下,好像都不能用
图片上传如果是input类型,可以试下填写文件方法弹框的选择看是什么类型,如果是select也可以用选择方法
大神我想问一下,我想在您的平台里实现,读取页面中指定元素的文字并写入到一个文本框里,可以实现么,我试了试改步骤,总是不行
刚刚做了一个简单的实现,添加了一个复制方法:复制:将某个元素的内容(value、text、innertext)复制填写到另一个元素中。刚刚已经提交到最新代码里了,可以更新下来看看。
更新后之前的用例为啥都不见了而且跑case的时候提示failedtochangewindowstatetonormal,currentstateismaximized
还有一个问题我想问一下,怎么才能把平台里设计的用例备份或者导出一下,省的我一不小心弄错东西用例又白做了,谢谢您了
你是重新初始化了数据库吗?或者看下app/config.py文件是否覆盖了,导致没连上数据库
备份可以直接在数据库里做
搞定了大神,我把mysql重启了一下然后重新执行了一下init.sql就好了,但是我又发现一个问题,执行init.sql会覆盖case和节点数据吗?那我下次在更新的时候要怎么操作才能在不丢失数据的情况下升级,谢谢啦
initsql是在初始化的时候才要做的,如果你已经初始化过,就不要轻易去执行了,否则可能把你原来的数据给清掉可以对比下你的版本和最新的版本,看新增了什么sql语句需要执行的
好的谢谢您了
楼主是怎么实现web端通过关键字编辑用例,然后在手机真机上运行的?卡在这里很久了,因为之前我是C/S结构
你用的什么框架来测试手机端?appium吗?其实原理一样,把关键字转换成对应框架的命令就可以了
对,用的是appium框架,就是web端怎么和Android设备通信是目前遇到的一个问题
好的,谢谢!
我发现使用填写文件的时候,会自动把\去掉。这个怎么解决。去掉了\导致了路径不正确
试下两个\
请问能同时运行多个任务么?如果有不同的环境需要同时跑自动化,那么这些任务是怎么组织和分发?
所有的任务都是转换为单条测试用例进行管理的。例如分别有A、B、C三个任务,分别有100条用例,那么定时任务就会查到有300条用例待执行,自动按设定的并发数(默认为6)并发执行。
每个任务生成独立的报告
知道了,谢谢
两个//也不行
两个\还是/
两个\
新提交了一个修改,应该可以兼容\了。这是python的转译符,默认保存的时候会转换掉
init.sql无法执行怎么办,好像是版本不支持
试下把这行注释掉,然后手动建库test_auto_new,再执行init
谢谢楼主大大
这个上传文件的还是搞不定啊。同样的一句上传文件。我单独放在一个Python文件里面就能执行成功,但是在你这个里面。文件就上传不了。不知道什么原因。driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/form/div[3]/div[2]/div/span/span/div[1]/span/input").send_keys("I:\3333.jpg")就是这一句
试下用填写文件方法,不要用填写1
另外你的这个xpath很长,可以的话建议用其他定位方式来替代,比如id、class等
都试了。都不行。换成短的也试了。也不行。
我这边是没问题的,如果你本地用selenium可以执行,可以检查一下:
填写方法就是按driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/form/div[3]/div[2]/div/span/span/div[1]/span/input").send_keys("I:\3333.jpg")这种格式进行封装的,所以如果selenium直接运行ok,理论上这样调用也没问题
嗯嗯,谢谢楼主。我自己再调试看看。谢谢
终于成功了。路径前面要加个r如果不加,就会被转义掉。只能暂时这么特殊处理了
老哥,请教个问题这个是你test_case的编辑,你可以通过用例id直接查找,然后跳转到edit_test_cases2,而且有着数据但是我自己也写了一个编辑,用着新的数据库,我也可以进行跳转,但是没有数据是什么原因?
从后台获取用例的完整信息,是在js里实现的
html里的调用:
对应的js:/static/scripts/core/test_case.js
看下你的js是不是成功调用了具体可以参考下我原来的html写法
刚开始就是模仿你的,js文件里面就是将test_case换成了test_app,然后新建了一个新的数据库,其他没改动过,这应该调用成功了吧
F12跟踪一下看下请求有没发送,还有参数是否正确
改成test_app,解决了,真的难受。。谷歌浏览器的缓存好坑,但是编辑里面的赋值还是没有解决,我只能找到id,然后。。。然后就没有软后了
全部是用你的,我就是改了名字而已(里面的方法名也都改了),但就是不显示;我也查看了你test_case的搜索方法,但和你一样呀,你也只查询了id而已,但网页最后有数据。js里面的赋值应该没多大关系,我都是默认的,但用例名称也不显示htm的reset按钮有的,网页也和你一样,但是也没有数据,只有id
一步步排查吧:
JS打印日志过了,触发了接口调用成功,debug模式有id传进来但问题就是只传了id,我用了你原来的文件,讲道理modle和名称起码应该可以和id一起传进来,但现在都没有。老哥,现在有空么,能帮我查看下么
楼主,各种弹框,页面,ifame的切换,你这里怎么设计的
都是封装selenium的方法处理,例如:
大神,想问下这里面接口这部分是怎么操作的呢?
指的接口测试部分吗?现在接口测试没有放在这个平台上面
有放在这个平台的意向吗?
内部使用有集成的,不过效果不是很好,后来改成单独的接口测试项目进行管理了
你好,想问一下单条测试用例可以运行,但是关联到测试集里就一直处于等待执行不知道是什么原因
请问答主用例的编写是没有采用POM模式吗?我看百度搜索的例子元素定位是直接写死在测试步骤中的,那如果我有50个案例均用到了同一个元素,后面元素定位信息改变了,那我是需要修改50个案例吗?
我还没有采用POM的模式,其实也可以做个增强,增加一个自定义对象的功能,把这种使用很多次的元素作为对象管理起来。
另一方面,如果你某些步骤是被多个用例使用到的,就有必要抽出来作为公共方法。
64楼这种方式是把调用seleniumserver的驱动改为本地驱动了。如果你是在本地执行用例的,可以使用这种修改方式;如果你是想用seleniumserver(即通过jar包启动的方式),就要看下面这部分了:
麻烦问一下楼主如果我想去数据库断言数据正确性怎么处理的
我现在没有做这种处理。思路应该是封装一个从数据库读取数据的方法,然后把获取到的数据和页面上需要的数据进行断言对比就可以了。
那我应该封装到那个文件里面,app/core/extend.py这个?
老哥,我测试用例集跑完后没有生成测试报告,然后邮件发送成功,但是收不到。这是因为没有报告的原因吗?
“”执行类型为Chrome时,不能关联android模块的用例,“”否则无法执行!,我有些安卓用例需要在运营后台配置,这个限制在哪取消掉
这里的执行类似是指属于web的用例,还是属于android的用例。因为对应具体的用例类型是不一样的(内部应用的驱动不一样,一个是selenium,一个是uiautomator2),所以限制了不能混在同一个用例集里执行。
楼主,我想问下。当用例集点击执行后,我观察代码是向数据库中update了一条数据。那么具体执行是从哪边,就是调用selenium执行的过程从哪边看到?小白一枚,希望楼主不吝赐教。
将数据库中的数据转成可执行的语句是哪边?谢谢楼主!
你看下coreservice.py文件的代码,其实是一个轮询,如果发现有待执行状态的用例或者用例集,就会开始执行;而界面上操作的update,就是把用例集更新为待执行的状态。
具体执行selenium的方法,可以从coreservice方法开始跟踪,最后是由process.py里的main方法执行单条用例的
好的,谢啦老哥!
楼主,你好。我试了下这个测试平台觉得挺好的。但有两个问题想请教你一下。1.添加用例集时提示请求出错,但用例集又添加了。请求是什么原因呢?2.在用例集列表上直接点执行不会跑关联的用例。下面是截图
这两个应该是bug,我有空的时候修复一下
楼主,你好。目前这个框架的用例好像没有部分执行功能也无法指定执行该用例的节点。请问是这样吗?如果是的话,请问方便加一下这两个功能吗?1.在执行用例前可指定某些步骤不执行。2.指定用例在某个特定的节点上执行,如果没有指定则随机选取一个可用的执行。
这种不是常规的需求吧,例如前几个步骤不执行,那流程还可以正常执行吗?如果要这么做,把用例编辑一下,删掉不执行的步骤就可以了(效果和注释掉对应的代码一样)至于指定节点,这个平台也是没有这个需求的,我的设计就是只要有可执行的节点就能执行。如果需要的话,要改对应查找节点的逻辑。
楼主你好,我想问下,那个接口管理是怎么使用的?我填了url进去一直是错误。
报错是因为你的接口里没有参数,也就是?后面的参数列表
请参考github上对应的说明:
楼主,这边进行安卓端自动化执行用例时报这个错,麻烦看下啥问题
这里的ip为啥为none,有影响吗
你的设备都连到atxserver了吗?看下自动化测试-节点管理-查看android设备列表页面里是否有可用的设备:
列表中有设备
你安装的是atx2吗?我还没来得及看,不知道是否还兼容我之前是基于atx开发的
是的,安装的是atx2
你试下替换成atx2的接口行不行:
atxserver2的/api/v1/devices没有ip的信息,需要用/api/v1/user/devices/${UDID}这个接口获取atxAgentAddress的地址信息并且接口请求需要带上token
那旧版本的使用没办法兼容了吗?
所以这边应该怎样改呢,看了下你那个ATX-test框架,你那个uid是写死的?
method=SERVER2就能获取到所有的有效设备了/api/v1/devices返回中只能拿到设备的UDID然后根据UIDID请求/api/v1/user/devices/${UDID}拿到atxAgentAddress就能链接到设备了
我是直接写了2套atxserver和atxserver2分开来处理的
好的,有空再研究一下如何集成atx2
老哥,我把项目部署到了服务器上,但是本地的selenium无法执行。我修改了本地的client.py中的地址,其他还有什么地方要修改的吗?
另外,那个分布式执行应该是怎么进行的?
无法执行,具体的代码和报错、日志可以截图看看吗?
分布式是由seleniumserver的hub和node方式实现的,只要把seleniumhub配到节点管理里面,剩下的事情seleniumserver会自动完成:
就是我在这边配置了,但是本地运行pythonclient,py的时候
客户端的client.py的地址需要修改吗?
你服务端的service.py启动了吗?看报错是找不到host
老哥,这个ip填的是自己本地电脑的ip地址吗?我把服务都启动了,但是还是显示
你的service.py在哪台机运行,就填那台机的IP如果都是本地,填127.0.0.1
老哥,这边客户端的client.py文件中的这里填的是本机的ip还是服务器的ip?
另外,4444端口和9998端口分别是干啥的?为啥要先isOpen()本地的4444端口。客户端和服务器端建立TCP连接时在9998端口上吗?
4444端口是seleniumServer是默认端口,client和service是通过9998端口进行通信
老哥,那个socket通信终于连接了,但是还是有个坑,就是执行的问题。我是把这个项目放到了服务器上,然后准备在页面上操作可以实现在本地客户端进行测试,但是我点击测试的时候,报了这个错误。为啥会不能进行测试呢?
看你截图最上面两行,你的clientdown了,所以不可用
本地还是启动不起来,报的是这个错误
你的client.py是怎么启动的啊,没有启动seleniumserver就自动退出了。这个client要做的事情是:
你现在的情况,是第三步没起来,你看下是不是改了代码配置还是说没下载client目录对应的jar包。
xpath定位格式应该怎么写呢,还有验证我写的第二个页面的文字,但是一直验证失败
xpath:点击|xpath@@value
验证:第二个页面是什么意思?打开另外一个窗口吗?是的话,要先切换窗口
就是登陆成功之后页面的文字,图片或者按钮的文字验证不成功,文本的文字可以验证成功了;如果验证页面数据是不是和数据库数据一致该怎么验证呢?
接口的模块是没有请求方式么post和get
验证失败会自动截图,你可以看下截图的内容是不是正常的
默认是post,需要的话自己看下如何修改吧
你好,我这边脑图有点问题,有空可以帮忙看一下?
可能是少提交了一些文件。你看下从kityminder的git上能不能下载对应文件吧
好的大佬
是缺少了文件,哈哈,在static/minder里面
能不能讲下单元测试怎么操作的呢,感谢
嗯嗯,已解决
忍不住问下,Blueprint这个有注册么,我想尝试着增加新的模块,但是一直提示pagenotfound!
app/_init.py文件里面注册
就是一个unittest的执行而已
验证不通过的话可以抓页面看下具体的值是多少,或者是否切换到了不同的iframe
楼主你好如何把你这套搭建到服务器上?一直提示无法执行还有这一步不知道怎么搞
服务器上同样的方式源码启动即可
你可以在源码里加个转义
您好,想请教下,为啥我这边跑用例的时候,chrome只闪现了一下就关闭了?
感觉是你的chromedriver版本太低了
在pycharm跑其他用例,用的是同一个chromedriver,用例可以跑通,应该不是chromedriver版本的问题
你确认一下看看,提示的版本是2.20,可能和我代码里提供的seleniumServer(3.11)版本不一致
seleniumserver3.11这个版本对应多少版本的chromedriver呢?
自己百度搜一下吧
你好想问下这个使用flask传参给seleniumselenium可以实现持久化吗
持久化是什么意思?
实现selenium的持久化,即浏览器一直不关闭并且能接收flask传入的命令
楼主请教一下BootStrap-table控件默认不展示某个字段怎没实现
这是定制开发的内容,你需要的话二次开发就好了
不知道你这么做的需求是什么
上面那个问题解决了感谢回复,,这几天一直在试用这个还有个问题想请教下楼主有没有尝试过把这个发布出来部署在iis上去使用呢,我尝试部署在iis上不成功期待回复
我理解这是Python的服务,Windows下直接启动就可以了,应该不需要使用到IIS吧?
执行“UI自动化测试用例整理举例-百度首页”的几个用例之后,只会进百度首页然后什么都不干过会就关掉了显示执行失败截图全是百度首页用命令行在envs环境内启动了run.py和core.py然后java-jar启动的app/client里面的seleniumservice,自己下的新版本3.141.59chromedriver也是去官网刚下的和版本对应的版本。。。
F12看下报什么错
解决了报类型错误因为改代码时用了中文的标点符号还有个问题脑图不能上传本地图片想请教一下脑图的源码好像也不能上传本地图片
没用过上传图片的功能,你可以找KittyMinder的源码看一下,我只是把它集成到flask而已
报错信息截图看一下?
没遇到过这个报错,可以搜一下看看
上面上传不了图片不影响其他的上传不了应该是要配置个文件上传的路径还不知道往哪配楼主有空可以帮忙看看
最近换了公司,目前没有在维护这套了。你可以试下根据他的说明加上
这个是core里的这个是node里的
实现把填写改成填写1
请问个问题,docker下执行用例时,经常会有用例出现WebDriverException:Message:Session[750685c9031b369275b84fd4f5569b9e]wasterminatedduetoBROWSER_TIMEOUT这种报错,有什么办法解决吗?
我好像没遇到过这个问题
楼主,遇到弹窗,如何定位当前页面弹出窗口上的确认按钮,步骤加入切换后还需不需要填入参数了,我看你是有"$para1","$para2"]两个参数要求,可是我填了定位的参数,每次到切换就出错了,就是无法点击到弹窗上的确认按钮
记得selenium有处理弹窗的方法,可以自行封装一下
建议你可以试下这么改:把识别的过程封装为一个关键字,然后在需要的时候调用这个方法进行识别。具体怎么封装新的关键字,可以看下上面正文里的说明
识别过程需要调用百度aip的三方接口,三方接口允许调用吗?在哪里调用?
你直接在代码里调用第三方就可以了,然后把这部分封装为一个关键字
应该是没有重跑所有用例。如果要改,你就把这个执行按钮绑定的方法,改成和详情页重跑全部用例按钮绑定的方法一样就可以了,具体的方法你可以右键属性查看;修改的话,应该是在test_suite.js这个文件里
大佬,昨天搭建了一下,用着很好,不过有个情况不知道怎么写,就是用例之前传递变量。比如我先获取了这个订单号,然后定位到搜索框想输入这个订单号。
还行问下,想知道的用例报错的详细信息,怎么看哈。就是堆栈报出来的错
大佬你好,刚开始使用您这套东西,关于如何启动selenium服务我没搞清楚,可以指导一下吗?红框部分我不知道应该如何操作!
想问一下您知道,seleniumserver这块是如何操作的吗,非常感谢
想请教一下作者怎么样可以一直测试比如说挂到服务器上执行一个小时或者更久
你的JS很多都报404了,找不到文件。你检查一下对应文件在不在吧
好的,我仔细找找,谢谢楼主
楼主,脑图是需要另外按照模块里的readme文件进行安装是吗
请问节点突然无法使用了,pycharm运行无法获取节点,但是如果用cmd命令行则节点可以启动,但显示的地址的无线局域网地址,而且用例依旧无法运行。而且run以后ie内核的浏览器可以访问地址,但Chrome的无法访问,不知道为啥一个周末就突然变成这样了,之前都没事
看一下是不是你电脑的IP地址换了?Chrome和IE访问的都是同一个IP地址和URL吗?
我怀疑是你的服务器端无法访问到你本地的seleniumserver,所以提示4444isdown.建议你检查一下这块,比如网关,端口什么的是否有限制,或者直接从服务Telnet一下你本地的地址和端口看是否能通
用例管理那里有单条执行的入口
autotest_platform/app/core/process.py/这个文件里面
感谢大佬~
楼主好我遇到一个问题,启动run.py后访问域名不是打开页面,而是把html文件给下载到本地了,路由都是正确的就是没识别出html。请教一下这是什么原因。
楼主好我想问一下公共模块怎么关联到测试集里
这个情况没遇到过。你是改动了view里面的代码吗?
公共模块是作为用例的一部分嵌进去的。你可以写一条用例,然后调用公共用例,或者看一下公共用例是不是可以直接关联到用例集里面。因为这个项目我已经两年多没有在用了,所以有些细节不是很记得了。
问题解决了与环境有关应该是安装了其他第三方库引起的隔离了环境后正常
大佬。我不太懂代码,我想问一下,新增时,我想新增几个模块。修改那个文件?
在app/templates/uitest/test_case.html文件,29行这个option里面改成你要的名字,或者增加option就可以了
这个位置我修改来。查询的时候可以看到加的那几个。但是我在新增的时候选不到
你看看其他几个template,哪个页面要改就改哪个template
博主帮我看看这是什么情况呀
麻烦博主了好久了没解决
看起来是你用的selenium版本兼容性问题。你先试试本地直接跑selenium是不是能跑起来?就随便用python写个selenium的测试脚本,能调起浏览器和打开网页就基本上没问题了
为什么我执行成功了也自动打开chrome了状态却是执行失败
看你的截图,失败的是验证的那个步骤,也就是断言失败了。你可以点开旁边的截图看看具体是什么问题,有可能是你用错了关键字
请问博主这四个是用什么镜像下载的:framework==0.1.0get==2019.4.13post==2019.4.13request==2019.4.13,我这里下载失败了,不知道是不是因此导致用例集查看结果页面的这个错误:
Pyechart我以前用的是0.5.5,你看看能不能安装这个版本
博主,我部署不上atxserver2,一直提示wait-for-db.sh文件有非法字符,web1无法启动,这个能解决吗?如果不能的话,我安装stf,你的项目代码要改吗?
博主,我已经安装好atxserver2了。想问一下你的代码支持测试IOS手机吗
我当时没有集成iOS的代码
博主,能不能帮我看看这个上传图片的用例为什么错了啊
这个为什么也错了啊
博主,能不能看看,执行一个弹窗类用例出错了
楼上的朋友们,这个项目我已经五年没维护了,所以你们如果遇到问题请尽量自己尝试解决和二次开发,恕我现在没办法帮到你们。所以请慎重选择这个项目哈,抱歉!
采用grid,怎样解决文件上传和下载的问题
感谢楼主的开源,后来为了应对公司的需求,在平台编辑的脚本,然后把脚本放到了用java实现的本地服务执行,就可以把自动化平台放到公网,本地起个客户端服务,就可以测试网页了,原本的模式自动化平台和selenium-server服务之间,不允许有内外网跳转的网络环境,就有所限制