哈喽 ,老哥,看了你的整个 skills,没看到 k6 的执行,就是执行 k6 run script.js .目前有几个问题想问下:
1、针对用户生成的 script.js 脚本具体内容时什么? 用户可以看到吗? 或需要吗?
2、k6 run script.js 整个执行的环境时在本地吗? 还是在什么隔离环境?是否安全?
3、性能测试报告可以留在本地吗?
意思是把获取 cookie 单独抽离出来,放在 fixture 中实现吗? 或者 单独的模块? 那么 业务模块 ABC 的自动化执行的时候,单独的 cookie 模块的用例也会执行吗?最后测试报告中是否展示 cookie 怎么加开关呢? 有代码示例可以参考吗?
好的 感谢大佬,有思路了
但是 做成自动化后,用例有依赖额,需要解除这个依赖吗?
适用的啊,yaml 读取出来后先处理,把处理的结果传给 ddt 就行
使用 yaml 的强制转换
url: http://www.baidu.com
method: get
headers:
Content-Type: application/json
token: $token
data:
username: ${username}
password: !!str ${password}
可以看下这个在 yaml 的使用方式,可以参考这个
https://blog.csdn.net/qq_44708990/article/details/121682012
发现一个踩坑记录,各位可以参考下
https://blog.csdn.net/LANNY8588/article/details/123782967
在国企的话建议不要跳槽,在公司内部看看有木有适合的其他岗位,如产品经理,数据分析,项目经理等等,
有的话多接触,学习一下,然后考虑转型,不建议跳到外面
method: get
url: http://www.baidu.com
headers:
Content-Type: application/json
token: $token
data:
username: ${username}
password: ${password}
这个是 yaml 的测试用例存储
input_data = {'token': 'hdadhh21uh1283hashdhuhh2hd', 'username': 'admin', 'password': 123456}
def operate_template(path, var):
from string import Template
import yaml
file_stream = open(path, "r", encoding="utf-8")
str_temp =Template(file_stream.read())
new_data = str_temp.safe_substitute(var)
data = yaml.safe_load(new_data)
return data
result = operate_template("./temp.yaml", input_data)
print(type(result))
print(result)
pwd=result["data"]["password"]
print(type(pwd))
print(pwd)
可以使用 yaml 库读取 yaml 文件,然后通过 string 的 Template 方法替换变量
其中 input_data 可以写成全局变量,这只是个例子
上海的最好哈,感谢回复
是的,但是测试和开发语言相同,在 code review 、技术交流、代码提升上有帮助的啊,
至少不会被开发骗 老实说,被开发骗了好多次了
有道理,但是精力有限啊,一个测试行业而已,这么卷的吗?
哈哈哈,你是懂 jvm 的。。。
其实各种原因吧,包括个人原因、门槛原因等等
应该是 LearDdt().ddt_add() 这样子吧
我想到的也是这个,不确定行不行?我自己的工作中没有用到 sskl,所以没法试,期待楼主试一下
有代码吗?不知道代码没法说啊?你需要实现成啥样?
终于碰到 fastapi 的人了
class PermissionException(Exception):
def __init__(self, body):
self.body = body
类似于这样,然后在 exc.body 中获取到
不要用这种方法,我之前也是这么写的,但是经常报错,我换了种方式,就是 log 中的 log_msg 作为参数传递过来,不用这个方式
目前还招人妈
好啦,问题已解决,谢谢各位啦,感谢各位提出的思路,感谢@xiaoj (杰) 和@keke
在这里做个总结:
def skipTest(value):
def deco(function):
def wrapper(self, *args, **kwargs):
if not getattr(self, value):
self.skipTest('跳过用例')
else:
function(self, *args, **kwargs)
return wrapper
return deco
这个方法适用于当前的测试类中,当且仅当只依赖一个测试用例的时候使用,比如登录,获取用户信息,退出,在这 3 个测试用例中,获取用户信息和退出都依赖登录,所以可以使用这种依赖方法,如果当前的测试用例还依赖了第二个其他的测试用例,则本方法不适应
2.keke 的方法
def dependon(depend=None):
import functools
def wraper_func(test_func):
@functools.wraps(test_func)
def inner_func(self):
if depend == test_func.__name__:
raise ValueError("{} cannot depend on itself".format(depend))
print("self._resultForDoCleanups", self._resultForDoCleanups.__dict__)
failures = str([fail[0] for fail in self._outcome.result.failures])
errors = str([error[0] for error in self._outcome.result.errors])
skipped = str([error[0] for error in self._outcome.result.skipped])
flag = (depend in failures) or (depend in errors) or (depend in skipped)
test = unittest.skipIf(flag, '{} failed or error or skipped'.format(depend))(test_func)
return test(self)
return inner_func
对这个方法做了一下小小的改动,以上就是最新的代码。其中 depend 参数的类型为 string,值就是测试用例的方法名称。
可以适用于依赖的测试用例失败或错误时都跳过测试用例,有 dependon 装饰器标记的用例必须在用例 depend(test_login)之后执行
此方法适用于 python3.4+,如果是低版本的 python3,请将 self._outcome.result 修改为 self._outcomeForDoCleanups,如果你是 python2 版本,请将 self._outcome.result 修改为 self._resultForDoCleanups
最后,再次感谢各位,祝各位春节快乐!
这个思路不错,但是如果有多个依赖关系的话,这样就不太好,我一直想获取 test_1 的测试结果,就是获取不到,有了 test_1 的执行结果,就可以判断了
有这个思路,但是写不出来,没法获取依赖方法的测试执行结果,可以给个 demo 吗
嗯啊,这个用过,感觉还是 pytest 大法好,但是当前只能用 unittets 实现 ,有相关思路吗
哦哦 没有用这个框架