robotframework 的 autoItLibrary 应该是你需要的把
#1 楼 @wuxixuxiaodong 是的,robotframework 看了 1 个星期,基本上就是用来做报告的,这点的确是我的不足之处。用 execl 主要就是为了直观的做数据驱动。方便给测试人员生成测试用例。回头要去补充一下 robot 的知识。
分析的很到位,能不能让程序自动去执行这三把刀 就是八仙过海,各显神通了。
另外一种方法就是写在代码里
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities={
'app': app,
'automationName':"xcuitest",
'platformName': 'iOS',
'platformVersion': '9.3',
'deviceName': 'iPad Pro',
'autoAcceptAlerts': True,
'noReset':True,
你们这是开单身群还是开娃娃亲的群呀。
#9 楼 @chenhengjie123
你看下我说的第一步,就是通过给参数设置 各种数值,然后把他们排列组合一下,自动生成 testcase。 是否和你说的小工具的意思符合。
#31 楼 @zhangzhao_lenovo
今天使用了楼主的软件,有几点疑问,想当面和楼主交流下。不知道楼主能给一个 qq 否。
另外今天在使用软件的时候发现了一个小 bug,可能楼主当初设置好了参数以后忘记改了。
根据上面我的截图,只要 json 的返回大小超过 16384,那么就不能拿到完整的 json,就算我们做好了 monk 的准备,程序也会报错。
建议可以把 github 上的代码修改下,把这个接受值调大一点。事实证明,16384 的容量可能不够用。
PS:python2 和 python3 写法上真的有很多区别。不过在 debug 这个 bug 的同时,学到了很多东西,很感谢。
#6 楼 @chenhengjie123
关于边界值是否需要生成用例,你的小程序去生成,如果我这样安排如何。一张 execl 里面写主要 case,另外一张或者几张 execl 表里专门用来测试边界值,比如有参数 A,B,C,表格 1 里面的 case 是一些主要通过 case。 然后 表格 2 里面 我们固定 B,C,可以做一个 A 的边界值全 case 测试。如果有必要还可以有表格 3,固定 A,C,测试 B 的边界值的全 case 测试。这个以前我在单元测试的时候,因为遇上过参数的排列太多了。造成一张 execl 表不可能存储下全部 case,所以我们公司就用分表去解决这个问题。
用 sql 来做预期值其实是一种美好的期望,谢谢你指出来。虽然可能在动态的测试环境中减少一些工作量,但是的确根据测试环境的不同,不一定就是一句 sql 就可以完成的。这个时候你说的固定数据条件 可能就是最好的解决方案。 前提就是要有固定数据的条件或者规定。这个应该不算很难。的确是个好建议。
羡慕呀,我们公司不再现的就放弃了。 没有日志可以让我们进行排查。尤其是各种莫名其妙的闪退 bug。
#4 楼 @chenhengjie123 很感谢你提供的思路,我开始设计的初衷 是尽量保证 case 不遗漏,通过对参数的排列组合虽然可以尽可能的提高覆盖率,正如你说的,会多出很多非核心功能的 case。 如果给参数 加上一个优先级,那么在排列组合的时候,每个 case 的参数就会有一个自己的优先级,然后根据 case 的参数优先级排列,优先级高的排在前面,这种方法不知道可行否?
我突发奇想,开发设计一个接口,接口中有很多数据。我们去做预期值的时候 也可以当做一个我们测试自己写的小接口,由于这个接口只要返回一个值,相对来说准确度就很高。 我们拿 小接口去测试 开发写的大接口的特定的数据。 一个目的,冲两条路走,结果还是一样。这样的框架是否会提高自动化的程度。
举个例子
接口 api 的参数 1,参数 2,参数 3 然后返回了 json 我现在要做 json 字段 a 的检测(字段 a 数据是从数据库里通过开发写的 sql 拿到的)
我们测试用 参数 1,参数 2,参数 3 访问数据库,用 sql 语句直接拿到字段 a 的值。
然后比较开发写的接口中字段 a 的值 和我们写的字段 a 的值是否一致。
这样我们的自动化程度是否会提高呢?
#1 楼 @hu_qingen 看了你写的文章,有几个问题想当面问下,不知道可否给一个联系方式 qq 或者微信。
你试试看 ./Scripts/bootstrap.sh -d
Hi,你好~
姓名:lunamagic
QQ:1409378927@qq.com
工作年限:8 年
公司:澎湃新闻
工作范围: selenium + Python 进行 UI 自动化、使用 Appium 手机端自动换测试,主要学习和使用语言 Python
兴趣方向:测试开发、自动化测试、单元测试
介绍:虽然现在是小 lead,但是始终觉得自动化测试是将来测试的方向,也想加强一下自己的竞争力,半年前开始自学 selenium,基本可以完成 UI 自动化,appium 主要在 ipad 上做自动化测试。在自动化测试还是一个菜鸟,希望好通过新秀培养计划锻炼自己。
@softblank 完全同意你的猜想,我在 iPad 9.3.5 上可以启动,但是在我手机上 10.1.1 上和你一样 卡在 setup 。 我在 webdriveragent 上也找到了类似的问题,但是好像还没有解决。
https://github.com/facebook/WebDriverAgent/issues/429
@softblank Fetching dependencies
*** Downloading peertalk.framework binary at "v1.0"
*** Downloading RoutingHTTPServer.framework binary at "v1.0.1"
*** xcodebuild output can be found in /var/folders/g9/z52tkkys3v12z0zp1ngm5rg80000gn/T/carthage-xcodebuild.mOHzTn.log
前面看到你也遇上了这个问题,
你的解决方法是
我怀疑是 pods 没有装好,于是又有吧 cocoapods 写了重新装了一遍,现在 appium 和 WDA 都好了
这个我没有接触过,能否说的详细点。
@appium_test 我请问下在模拟器下我可以进行 appium 的测试,但是 webdriveragent 会打开两次,你这里是否有是一样的现象。
@appium_test
我遇上这个问题,不知道能否解
运行时候
[debug] [XCUITest] Carthage found: /usr/local/bin/carthage
[debug] [XCUITest] Killing hanging processes
[debug] [XCUITest] Using real device logger 'idevicesyslog'
[debug] [XCUITest] Beginning test with command 'xcodebuild build test -project /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=522e9f23ca5844b4e3fe09b733c611f7592b7167 -configuration Debug' in directory '/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent'
[XCUITest] Waiting for WebDriverAgent to start on device
这里我是等待 webdriveragent 启动,但是我看 appium test 他是启动 webdriveragent 成功。看来这里开始有区别了。
[debug] [XCUITest] Log file for xcodebuild test: /Users/luna/Library/Developer/Xcode/DerivedData/WebDriverAgent-brdadhpuduowllgivnnvuygpwhzy/Logs/Test/2BE20AE2-53C6-42FB-82F1-604F7FD98323/Session-WebDriverAgentRunner-2017-01-03_181921-fOdEWu.log
[debug] [WebDriverAgent] Device: Jan 3 18:19:27 iPad XCTRunner[1323] : Running tests...
[debug] [WebDriverAgent] Device: Jan 3 18:19:28 iPad XCTRunner[1323] : Continuing to run tests in the background with task ID 1
[debug] [WebDriverAgent] Device: Jan 3 18:19:29 iPad XCTRunner[1323] : Built at Jan 3 2017 17:06:52
[debug] [WebDriverAgent] Device: Jan 3 18:19:29 iPad XCTRunner[1323] : ServerURLHere->http://10.10.42.147:8100<-ServerURLHere
[debug] [WebDriverAgent] Device: Jan 3 18:19:29 iPad XCTRunner[1323] : Listening on USB
通知我 Listenting on USB
我在 appium 的官网上找到了应该是最接近的答案
https://github.com/appium/appium/issues/7313
但是,他说需要修改 js。
我打开我本机上的 js,但是已经和 7313 上解释的代码已经不一样了。
不知道有高手能帮忙指导下吗?
ps:我 mac 的时间和 iPad 的时间 都是自动获取的。所以应该不会有时间差。
@13564521636 的确是 sh ./Scripts/bootstrap.sh -d 没有搞定,我今天输入命令一直提示 不存在 bootstrap,原因是 carthage 没有装好,因为我以前装过,所以还需要做 brew link 什么的。 我是卸载 carthage,然后安装,根据提示搞定的。brew link --overwrite carthage