#2 楼 @luoxi001713 你先把你不稳定的具体情况说一下,例如代码如何,实际执行结果里面执行多少次,多少次正确,多少次不正确,不正确的话是输出了什么。
先描述问题,然后定位问题,最后才会是解决方案。
楼主自己的思考呢?不能这么简单就被面试官否定自己的工作吧。。。
关于性能的帖子很多,Testerhome 也有对应的性能专项公开课。。。你得自己搜索。
#5 楼 @debugtalk 额,不知道,也许是它匹配的时候出问题了。你看下源码的逻辑,或者自己加断点来调试下?
请用 markdown 排版。若不懂可参考 排版说明
已加到 issue 列表,后续会优化。
在输入完成后,关闭数字键盘
试过发一个 back 的按钮事件不?
没搞懂,你是想登录这种情况不要固定等待 10 秒?
如果只是登录不等待,那很简单,登录前把等待时间设为 0 ,登录后把等待时间设回 10 。
淘宝是指阿里 mqc ?
当前我是打算采用 name,但是 app 存在多国语言,这样就需要针对每一种语言进行处理;官方文档推荐采用 ID,但是 APP 里面大多控件都没有 ID 这个属性(从 Console 来看);
关于这个补充回答一下,做 UI 自动化时一般需要手动对控件添加 AccessibilityLabel 来保证其唯一性的。这个属性仅用于做盲人辅助/UI 自动化,和界面显示、多语言之类的都无关。大部分情况下开发不会主动添加这个属性,个别控件会有这个属性值的原因是它们的 AccessibilityLabel 默认值就是控件的某个属性,但这种一般无法满足自动化的需要。
#12 楼 @debugtalk 从 log 来看,server 返回的这个控件的属性如下:
{
"name": "My Account",
"type": "UIAButton",
"label": "My Account",
"value": 1,
"rect": {
"origin": {
"x": 302,
"y": 619
},
"size": {
"width": 71,
"height": 48
}
},
"dom": null,
"enabled": true,
"valid": true,
"visible": true,
"children": [],
"hint": null
}
里面并没有返回名为 id 的属性。估计这个属性是 ruby client 或者 ruby console 自己添加的。然后看了下 ruby client 的源码,发现的确是它自己加的。相关代码:
...
# there may be many ids with the same value.
# output all exact matches.
attributes = [name, label, value, hint].select { |attr| !attr.nil? }
partial = {}
id_matches = @strings_xml.select do |key, val|
next if val.nil? || val.empty?
partial[key] = val if attributes.detect { |attr| attr.include?(val) }
attributes.detect { |attr| val == attr }
end
# If there are no exact matches, display partial matches.
id_matches = partial if id_matches.empty?
unless id_matches.empty?
match_str = ''
max_len = id_matches.keys.max_by(&:length).length
# [0] = key, [1] = val
id_matches.each do |key, val|
arrow_space = ' ' * (max_len - key.length).to_i
match_str += ' ' * 7 + "#{key} #{arrow_space}=> #{val}\n"
end
puts " id: #{match_str.strip}\n"
end
...
完整的源码:https://github.com/appium/ruby_lib/blob/master/lib/appium_lib/ios/helper.rb。
能否举个几个实例详细说一下用例具体要怎么设计?怎么设计才能更好地保证不遗漏最后的两个案例里面的安全问题?
我觉得无论是否自动化,用例设计都是比较重要的。
这种是第三方控件吧?
#10 楼 @debugtalk 我想看的是 page
命令对应的 log ,但你给的貌似是 id('My Account').name
的(log 里面一开始就是 find element)。能补充一下吗?
不是说合集吗。。。怎么只有一个问题。。。
耗时都在哪?把 appium server log 加上时间戳看看,到底哪里耗时先把。
Appium 相关的 jar 包没导入项目。。。
你留意下 import 部分,有几个类在你的项目里找不到。建议看下 appium girl 的环境配置教程:https://anikikun.gitbooks.io/appium-girls-tutorial/content/peizhi_ide.html
没用过 ruby console 。。。据我所知本身 iOS 控件应该没有 id 这样的属性的,一般用的是 AccessibilityLabel 或者 AccessibilityIdentify。你能把在 ruby console 获取 id 时的 appium server log 发上来看看实际上请求的是什么命令吗?
#56 楼 @miserable 这个我也不清楚。。。你还是直接找作者吧。