这个主要还是习惯问题。override 别人的方法前,要先了解清楚这个方法是干嘛的,override 是不是最佳实现方式,特别是 override 后原来已有的功能是否有重新提供,没有的话是否要通过调用原来父类方法来提供原有的能力。
看楼主这个 setattr 方法的最终实现,实际就是插入了个如果是密码就哈希后再写入的动作。这个动作为何要放在 orm 对象的 set 内部这么深的位置,而非在业务逻辑代码里写 account.password = hashlib.md5(password.encode(encoding='UTF-8')).hexdigest()
?
你可以看看 AgileTC ,开源的 xmind 用例管理平台。当时做得和这个差不多。
学习了。
不过,这个感觉还是指标不治本,只能更及时发现网络断开然后自动重连,但还是会低概率影响自动化执行?建议可以找运维沟通下看为啥 wifi 会连不上,解决一下,或者改为用有线网络。
很实用的功能,赞!
大致看了下,你说的这些问题,其实技术上都可以解决,只是需要多一些额外的兼容处理而已。
其实难点倒不是这些兼容处理,而是你的写法是不是团队的统一写法。如果每个人都有自己的习惯写法且差异较大很难统一,这个才是最难的。xmind 是很自由的,而很多传统的用例管理系统格式并没有这么自由,习惯 xmind 的团队很容易由于 xmind 的自由各自形成自己的写用例风格或者叫思维风格。这种风格本身和规范冲突还是比较大的,而且说实话,只要这种自由风格不会引起协作问题,其实也没太大必要去统一规范增加协作成本。
我之前呆过的一家公司,1.0 版本的用例管理是走 xmind 转传统用例格式的方式的,结果因为每个人风格差异太大且转换后没法类似 xmind 那样超级自由地编辑(互联网公司,执行用例的时候需求调整所以用例需要对应调整,非常常见),基本除了上传后自动统计用例数量和通过率数据有点用外,基本没人在上面直接写/执行用例。最后 2.0 版本直接改成在线 xmind 编辑,让大家基本不怎么需要调整习惯,才真正落地。
没在项目里用,因为 google 官方是用于 c++ 这类语言的,我们用 java 差异比较大,所以没有用。
学习了。
很详细的说明,感谢!
以前曾经做过类似的,规范 xmind 写法实现 xmind 转传统用例格式。但实际使用发现,要让大家的 xmind 格式统一非常困难。大家用 xmind 的目的是通过脑图减少用例中的重复编写成本,提高编写效率,xmind 更多是思路的体现,而非固定按传统用例的 前置条件 - 操作步骤 - 预期结果 这种写法。
好奇问下贵司这种强格式规范要求,实际推行的时候测试人员接受度高吗?
充满挑战的一年呀,加油!
自己试了一下,如果是在 venv 里面刚安装完 pandas ,直接用 pytest 运行,是会这样的。
解决方法:安装完后,通过 deactivate && source venv/bin/activate
退出并重新进入一次,就没问题了。
解决方法查找方式:用 bing 搜索 virtualenv pytest
,第一个 stackoverflow 的回答就是(虽然内容不大能对上,但原理基本一样,应该都是要重新进入后重新初始化一些环境配置)
你可以试试这个解决方法?
几个建议:
1、不是只有写平台才是技术,功能测试里面,多看看开发的代码怎么实现,项目用到的一些技术是什么,多了解各种线上疑难杂症背后的技术原因,也能得到一些技术上的提升(偏广度和视野)。
2、技术提升最快的不是你有更多的空余时间学习,而是你在工作中就在使用技术。可以看看团队里有没有类似这样的机会,尽量争取一下,这样深度会更好。如果团队限制实在没这样的机会,也可以考虑通过换工作获取这样的机会。
我重新看了下你前面 pip freeze 命令运行环境,命令行最前面没有 (venv) ,说明并不是在 venv 环境中执行。
你按上一层的步骤,在运行 source venv/bin/activate
进入 venv 环境后,再执行 pip freeze
命令看到底有没有装到依赖?没有的话在这个环境内用 pip 命令安装你所需要的依赖就好
那你得看看这个 app 的滑动解锁识别原理是啥,看是不是有什么特殊配置(比如要求每个点要停留一定时间之类的)。
那看来确实有依赖。把你完整的怎么启动 pytest 的方式发一下?详细到手把手级别,看是不是实际执行环境用的不大一样。
这个应该和新写法没太大关系。你这个滑动解锁人工滑动是要怎么滑的,正常滑完是什么样?你的坐标确认都有对到每个点上了么?
没看出哪里失败了?日志没有报错,左边截图也没提示解锁成功/失败什么的。
麻烦附上一个正确的结果,有对比才能看出哪里不对。
你是怎么调用 tidevice 的呢,一般这种情况发个 kill <进程id>
命令发送中断信号给进程,就可以关闭了。
电脑 ctrl+c、ctrl+d 这些本质上也是发送信号给进程。关于信号的详细信息,可以参考 https://www.jianshu.com/p/d7b96562d6ed
这个场景用 V*i 是不是更正规一些?看起来有点像是一些暴露内网端口给公网访问的招,容易有安全风险。
有没有结合项目实际实践的分享?
纯这么讲有点虚,而且这些概念也挺多地方有介绍了,不算新,仅仅讲概念没什么感觉。
从官方文档介绍,这个 shake 方法只支持 iOS :
https://appium.io/docs/en/commands/device/interactions/shake/
不知道你是什么场景需要用到抖动这样的动作,建议让开发把这个通过抖动触发的功能,加个通过别的方式调用的入口供你调用吧。
你这个路径确认是你用的 venv 安装依赖库的路径么?建议你在你对应的 venv 环境里用 pip freeze
之类的命令确认。
虚拟环境是一个 Python 环境,安装到其中的 Python 解释器、库和脚本与其他虚拟环境中的内容是隔离的,且(默认)与 “系统级” Python(操作系统的一部分)中安装的库是隔离的
出自官方文档:https://docs.python.org/zh-cn/3/library/venv.html#venv-def
venv 里面确认配置和安装了 panda 这个库么?这个虚拟环境的依赖库配置和普通 shell 这些是隔离的,相当于每次都是从一个什么依赖库都没有的干净环境启动。
疑难杂症的原因,总是出现在你想象不到的地方。
验证过 vars.putObject() 支持写入 byte[] 类型数据么?