看完有些地方不太明白,docker node 的作用是什么? 感觉上只是提供了一个测试执行的环境
是所有的 node 节点上的自动化测试 case 共用一套被测服务,还是一个 node 节点使用独立的被测服务?
不太明白为什么你们的 docker image 居然能超过 10G...
然后你给出的 dockerfile,其实写的不够好,你应当将所有 shell 命令写成一行,这样构建时只会生成一个 layer,大量缩减镜像的大小
自动化的目的不是发现 bug,而是质量保证
就像 @chenhengjie123 所说的,用例继承 unittest.TestCase 来写,但是可以用 nose、py.test 等其他工具来执行,能很方便的扩展功能
很简单,你看下 logging.root.handlers 或者 logging.getlogger().handlers 下是否都有对象,清除多出来的就行
另外我觉得这个类是没有必要的,建议楼主看下这文章:http://victorlin.me/posts/2012/08/26/good-logging-practice-in-python
你这样使用日志好奇怪...
所以,leader 职位,假如现有基数比较低(当前某二线城市)的情况下,就算通过面试,也达不到下限么
额,小红薯的接口测试就停留在这种阶段么
pywinauto
: https://github.com/pywinauto/pywinauto
或者可以用下我这个 pyautoit
有高级职位么 - -
慎用eval
, 如果你希望将 json 字符串转成 dict,可以导入json
模块
这不是坑,是你没懂这两个参数的区别
用json
先吐槽下,请在.gitignore
加上 *.py[cdo]
def print_something(request_type, name, response_time, response_length, *args):
print request_type, name, response_time, response_length
events.request_success += print_something
#20 楼 @debugtalk 你把参数补充完不就行了么
sys.argv.extend(["-f", __file__, "--no-web", "-c", "1", "-r", "1"])
另外你还可以定义不同的 event
#15 楼 @debugtalk
注意下 locust 的 setup.py:
entry_points={
'console_scripts': [
'locust = locust.main:main',
]
能看到 locust 的执行入口是locust/main.py
的 main 函数
假设你要调试你的脚本,可以这么做:
if __name__ == "__main__":
import sys
sys.argv.extend(["-f", __file__])
from locust.main import main
main()
这段代码的实现我觉得不是特别好
pywinauto, 这个我要强烈推荐下
我用伪代码来表示
假设该控件,在 iOS 下的表达式为aaa
,Andorid 下为bbb
class _Elements(object):
@property
def btn(self):
if device == "iOS":
return "aaa"
return "bbb"
elements = _Elements()
driver.find_elements_by_class_name(elements.btn)