不要连外网,或是抓包看看,看看连接的域名是什么,看看能不能屏蔽域名或 ip。
关注了好多敏感词。
如果是在内部的测试环境,可以获取下短信的查询接口,肯定有 web 页面供业务测试使用。我们这里是利用 web 页面查询的接口,写了一个自动查询的步骤,即根据手机号查验证码。把这个步骤加入到你的自动化步骤中即可。
如果是在外部的生产环境,可以写个安卓的 apk,获取短信读取权限,实时监听新短信,后面写到文件中或发到其他接口中。自动化的步骤中加入这个就行了。
总的来说,短信验证码算好的,总归可以获取,最难的是图形验证码,简单的还能识别,复杂的就没法搞了。
还有一类是 usb key 一类的,这类需要硬件支持,更恶心的是有的还需要点击 usb key 上的确认实体键。
最简单的方法是开发配合,软件版本配置层面的开关加以屏蔽。
供参考。
#3 楼 @leonyao2007 没理解你意思。
不喜勿喷。
appium 的 python client api 没安装啊
pip install Appium-Python-Client
按照你说的方法,先获取可用的 imes,然后切换到默认的输入法,试了 2 次成功了,暂未发现有出错。多谢。
@hxhapppppy 看到这个方法。
C:\Python34\Lib\site-packages\appium\webdriver\webelement.py
继承于 C:\Python34\Lib\site-packages\selenium\webdriver\remote\webelement.py
初始化的时候,不知道怎么用了。
def __init__(self, parent, id_, w3c=False):
self._parent = parent
self._id = id_
self._w3c = w3c
#17 楼 @hxhapppppy 没有的。有 set_value 方法,但是使用后会提示还没实现这个方法呢。。。
曾经这样成功过,py2 的版本,是取出分辨率,然后根据屏幕的比例算的。比例写死了。
# 往上滑动,选择文字
def chose_text(self, value):
p1 = int(self.width / 2)
p2 = int(self.height * 0.770833)
p3 = p1
p4 = int(self.height * (0.770833 - 0.095))
while True:
self.dr.swipe(p1, p2, p3, p4) # 滑动的位置
el_value = self.dr.find_element_by_xpath(
'//UIAApplication[1]/UIAWindow[1]/UIAPicker[1]/UIAPickerWheel[1]').text.encode("utf-8")
if el_value.startswith(value):
el2 = self.dr.find_element_by_name('确认')
el2.click()
sleep(2)
break
#11 楼 @duyanguang 有这种可能性,账号是 4 位 4 位自动分割的。我后面实验下。
感谢大家。
总结出来是这样的:
输入数字的时候,特别会出现这种问题,不清楚是否和账号这类会自动分割成几段有关。
appium 中的 py 的 api 中,还没实现 set_value 的方法,其他语言没去查。
目前我们的解决方法是这样的:
1:先用 send_keys , 输入完成后,检查下值对不对,不对的话,再来 1 次。
2:如果 2 次还不成功,并且都是纯数字,就换 dr.press_keycode(7) 这种方法,7 就是 0。
3:用 press_keycode 之前,要 click 一下。
具体的 keycode 可以看这里:http://developer.android.com/reference/android/view/KeyEvent.html
这种情况也不是每次都出现,也是奇怪了,而且日志也不报错。
不可否认的是,基础类的培训对于非计算机专业的人,具有一定的作用。
IT 行业,知识更新快。需要的是自我驱动能力和学习能力。
培训只能补补基础,剩下的只能靠自己了。
东哥很忙的,我来帮他回答把。
1: 压力是如何计算的,比如 100 个 Vuser,每个 Vuser 产生 4 个请求,平均响应时间是 5 秒钟。那么应该是 QPS =(100 * 4 )/ 5 。最后并发数 = QPS / 4 ,想问一下这么计算正确吗?
== 先假设没 think time,100 个用户,响应时间是 5 秒,tps 应该是:20 笔/秒。
2:方案中 重点是描述模拟哪些交易,怎么模拟等相关信息。你写的也挺全了。
有问题的,其他人在补充吧。
看看文件权限,setProperty 先写死试试。
就大概算个坐标吧。其他也没好办法,就选第一个最大的吧。
这是最简单,最快的。。。
appium 的启动参数中加--log,写到文件中吧,看文件中实际是啥编码的。
通用的 appium 部分可以封装起来,提供给外部调用的接口,如点击按钮,触摸等。
案例最好用外部的方式进行管理,如最简单的 excel,excel 中标示这些案例中的步骤,其所对应的操作和所需的参数。
执行的时候,通过案例中的步骤驱动自动化执行。
最简单的就这样了,但还有很多需要考虑。如测试数据、结果收集、并行执行、异常处理等。
还没完,稳定性还需要在跑下,最好加点空间或增加个自动清理日志的脚本。
"C:\Program Files (x86)\Appium\node.exe" "C:\Program Files (x86)\Appium\node_modules\appium\lib\server\main.js" --port 4723--command-timeout 300 --log C:/appium_4723.log --local-timezone