可能我说的不够准确。我说的协议不是 http 协议或者别的协议,主要是接口数据结构。这个当遇到添加新功能时有可能会通过扩充字段来做。
举个例子,协议指定登录接口的数据结构如下:
{
"username": "stringType",
"password": "stringType"
}
那么客户端根据这个协议写完解析语句后,可以随机生成下面的数据来联调:
字段结构错误
{}
正常数据
{
"username": "adsafasdf",
"password": "asvxzcv"
}
字段数据类型错误
{
"username": 1123123,
"password": 15612
}
...
童鞋。。。把你的脚本文件名改成其它名字。。。
你在文件里的 from appium
里的 appium 被 python 识别为你当前这个文件了。
不错,做的挺全。
之前也有做一下自动化的接口测试,但由于时间精力问题没有做成平台形式。有几个问题想交流下:
能提供更丰富的上下文不?例如你遇到这种项目是怎么做的测试,遇到了什么坑之类的。
这是一个测试相关技术交流社区,请不要发硬广。
麻烦说明下发帖提示中的:
5.已经尝试过哪些方法仍然没解决(附上相关链接)
请勿伸手。
appium server log 呢?
在电影院!?
前端发展越来越好啦~
那个。。。公司名称能给下吧?
哇塞,这个机会好吸引人耶,省去很多面试的时间,也不用纠结各种请假的事。
忽略节点这个貌似有问题。
我忽略了一个节点,该节点目前的帖子会屏蔽了,但该节点新发的帖子我还是能看到
#2 楼 @seveniruby python 没有 switch 。。。
不错呀~这类程序很实用。写熟了对提高效率很有帮助。
查了下,应该是 chromedriver 的 bug 。而且从 appium server log 上看应该是 chromedriver 太长时间不返回导致自动超时了:
[36minfo[39m: JSONWP Proxy: Proxying [GET /wd/hub/session/15c97430-8a97-4dce-932a-347f4ed20ba7/screenshot] to [GET http://127.0.0.1:9515/wd/hub/session/e89b5704975b3a112dc7bd1184900a6c/screenshot] with body: {}
[36minfo[39m: [debug] Didn't get a new command in 60 secs, shutting down...
...
[36minfo[39m: JSONWP Proxy: Got response with status 200: {"sessionId":"e89b5704975b3a112dc7bd1184900a6c","status":21,"value":{"message":"timeout: Timed out receiving message from renderer: 600.000\n (Session info: chrome=43.0.2357.121)\n (Driver info: chr...
...
你用这个最新的 chromedriver 替换掉 appium 自带的试试?
https://pan.baidu.com/s/1bnUceaN
appium 自带的 chromedriver 位置(假设你的 Appium.app 放在 /Applications
):
/Applications/Appium.app/Contents/Resources/node_modules/appium/build/chromedriver/mac/chromedriver
直接用链接里的文件解压后覆盖旧的就好。
PS: 你用的是啥编码。。。为何大括号这些字符在你这里都变成了 [36
这种显示。。。
代码 markdown 还是有些问题。这次帮你改了,建议你详细看下回帖框右下角的【排版说明】。
另:麻烦补充一些信息:
invest_list.click_invest_contract()
前后大约 20 行的 appium server log 。你截图给的那个 sessionid 为空的是心跳包,和脚本执行关系不大。赞啊~
弱弱地问个问题,程序中其他地方需要获取输入框文字时,也需要使用一些特殊的方法来获取这个内部的 StringBuilder 了?
你应该先确认进入 我的账户 这个动作实际是否切换了 activity ,以及它的 activity 是什么。可以通过反编后查看 AndroidMainfest.xml 看到,当然有源码更好。
这种抄袭不尊重别人劳动成果,就应该追究到底!