测试数据放 yaml,为什么不直接用 HttpRunner
试试 pip install tep==0.5.3
呢
2021 流行 Java 自动化测试了么
点赞 相同技术栈 正在做 刚好借鉴下
我正在自己写 Vue + Django + DRF
我也没想到被加精了,从读者了解到,文章亮点是给快速搭建自动化项目提供了便利。
tep 只是一款测试工具,不像测试框架逼着你非得这么干,数据代码分离可以通过 fixture 来实现,取决于个人需求和代码习惯。
断言也是一个道理,严谨的话就加上数据库断言呗。
Python 转 Java 方向是什么原因呢
简单易上手,就是 postman 了。
感谢恒温大佬加精!
不过如何在一个用例中,引用其他用例,来实现用例级别的复用,还在思考中,等想好了再写篇文章来说说。
如果查询接口复用比较少,那么放在少数几个 py 模块中就可以了,如果接口复用比较多,可以抽取成 fixture 放在 fixtures 目录下,py 模块进行引用。
pytest 定义 scope 为 session 的 fixture,存放 py 模块之间的全局变量,每个用例动态添加进去相互复用,也许能达到你的效果,可以参考下https://testerhome.com/topics/27284
正想做个类似的,期待开源。
这种观点未免太悲观了点,诚然测试是容易背锅的岗位,但是有些开发造成的问题,是可以通过努力让团队和 leader 认识到的,并不会最终把责任定给测试。无法改变人的第一印象,那么就需要前期做好记录,遇到线上事故能拿出可以解释的证据,如果总是发现是开发导致的,难道还会认为是测试不靠谱么?
也还好。现在的失败经验,说不定在将来某一天会有作用。别人刚开始踩坑的时候,也可能是这么过来的。
@Mingway_Hu 帮我也退出下
有 Python 的存在,为什么还要用 Postman 和 JMeter 写接口自动化???
helloworld 大神 是什么梗?
可以看看我之前文章里面这个例子。
https://testerhome.com/topics/25550
8.在不同 python 解释器之间测试对象序列化。python1 把对象 pickle-dump 到文件。python2 从文件中 pickle-load 对象。
"""
module containing a parametrized tests testing cross-python
serialization via the pickle module.
"""
import shutil
import subprocess
import textwrap
import pytest
pythonlist = ["python3.5", "python3.6", "python3.7"]
@pytest.fixture(params=pythonlist)
def python1(request, tmpdir):
picklefile = tmpdir.join("data.pickle")
return Python(request.param, picklefile)
@pytest.fixture(params=pythonlist)
def python2(request, python1):
return Python(request.param, python1.picklefile)
class Python:
def __init__(self, version, picklefile):
self.pythonpath = shutil.which(version)
if not self.pythonpath:
pytest.skip("{!r} not found".format(version))
self.picklefile = picklefile
def dumps(self, obj):
dumpfile = self.picklefile.dirpath("dump.py")
dumpfile.write(
textwrap.dedent(
r"""
import pickle
f = open({!r}, 'wb')
s = pickle.dump({!r}, f, protocol=2)
f.close()
""".format(
str(self.picklefile), obj
)
)
)
subprocess.check_call((self.pythonpath, str(dumpfile)))
def load_and_is_true(self, expression):
loadfile = self.picklefile.dirpath("load.py")
loadfile.write(
textwrap.dedent(
r"""
import pickle
f = open({!r}, 'rb')
obj = pickle.load(f)
f.close()
res = eval({!r})
if not res:
raise SystemExit(1)
""".format(
str(self.picklefile), expression
)
)
)
print(loadfile)
subprocess.check_call((self.pythonpath, str(loadfile)))
@user3ize("obj", [42, {}, {1: 3}])
def test_basic_objects(python1, python2, obj):
python1.dumps(obj)
python2.load_and_is_true("obj == {}".format(obj))
def test_login(chrome, firefox):
open_url(chrome, "https://www.baidu.com")
open_url(firefox, "https://www.baidu.com")
这样?
一般情况下,性能测试是将系统处理能力容量测出来,而不是测试并发用户数。
JMeter 的线程只是用来产生并发请求的技术手段。
我的观点是,这个公式容易误导人,不提更好。
严格意义上的并发用户数:指与系统建立连接,并对系统发起请求,对系统造成压力的用户;注意:并发用户数不能完全代表对系统的压力,比如 100 并发用户与系统建立了连接,每秒发一次请求,每 10 秒发一次请求,这两种行为对系统的压力是完全不一样的。
可以通过查询 被测服务器有多少来源于压力机的 IP 与服务器建立了连接,来计算真实并发。
用户数 != TPS * 响应时间,这个公式完全不成立。
看自己喜欢吧,既然会 java 就用 java,我喜欢 python,选择用 python。
涨涨见识也挺好,不知道 PPT 什么时候分享出来?