同样是 10 多年前,南京华为,很多人一起模拟团队那种面试,不知道这做叫什么
没必要吐槽 RF 和使用 pytest 写脚本证明啥的。
夸张的说 python 现在的支持的库多的几乎没有没不涵盖的,这和什么测试框架没有关系。
刚做自动化时自然会接触 RF,本能就 skip 了,因为也搞过个使用 excel+unittest 做类似关键词驱动的东西玩玩,太不灵活了,哪有写脚本灵活。但对于项目关联角度来说,选择框架还是很有用的,pytest 也是目前最好的选择了。
有的项目已经 7、8 年了,用了目前看来已经 “过时” 的框架,如果这块业务还在运营,大裁员环境下,还有人有多的余力去大改造吗,小改小调是不是还得懂些 “过时” 的框架.
至于 “培训” 嘛,只能说挣钱不寒碜
市面上有不少基于百度脑图开发的思维导图在线用例工具
我前年兑换的杯子依然等待发货....
首先 metersphere 使用 python 的第三方包,先参考:
https://zhuanlan.zhihu.com/p/446668517?utm_id=0
按这里做法,我尝试是可以的
多年以来,UI 自动化都是虎头蛇尾的多,很少持续 2 年以上的:
除了自动化技术的迭代,更多是因为大环境下,很多业务持续的时间不够长,对应 UI 更不用说了。
相对的更有效的是接口自动化测试、甚至流量回放测试,UI 的部分靠人工保证是更有性价比的
如果能被自动化【轻易】搞定的验证码,那还搞的目的是什么?
验证码的目的本来就是要区分人和机器,最低目的也是要大大增加自动化验证的成本。
所以如果对自己公司的系统:
测试环境:给自动化测试提供直接跳过的功能,至于验证码本身功能通过人工去测试。
生产环境:先人工完成登录,然后通过 connect 的方式去执行自动化脚本
昨晚又出故障了,最近 openAI 升级后各种故障:
今天服务挂了,现在应该好了
content/page.on("request", handler),在 handler 中打印一下你的请求头看看、检查一下。
只是对卷心菜这个说法感觉有意思:在一个都是低水平的地方卷,卷的再好,在外面来看还是低水平。
裂开了则不是我思考的地方
最简单的方法其实就是最古老的方法:ASP 的上传下载服务
5 年前也有一样的问题,搜刮全网,开源的普遍的是 php,少量 java,而且不好用;最后跟领导说一下,最后决定自给自足了。
自研的话可以契合本公司/部门的需求。
我们这里是偏业务的公司,测试用例几乎可当需求归档的。
而且用例容量日积月累,层级复杂。一些开源工具的的层级管理就不太满足了,所以要自研。
至于备份,定时任务 dump 就好了。
如果性能能这样计算,也
一个应用调用链涉及到多个服务,每个服务都是影响性能的。
代码写的差,再好的硬件也救不了
不能充分利用多核,cpu 再多核心也没用
没有特别去找过特定的论坛,但 github 上有相关项目是关于 chatgpt prompt 的:https://github.com/f/awesome-chatgpt-prompts
我们这个例子中的提示语是不断完善出来的,把大家日常中遇到的各种异常都存下来,逐渐调试出来的。
同意
不是人人都有大厂中各种先进技术栈锻炼的机会的,就算自学也只是了解而无真正实践经验的。
他能一个人完成各项目的测试工作,如果能完成的好且有系统化总结的话,肯定也不是 1-3 年的能比的。
虽然经历看着平平,倒也反应了真实的日常工作。
测试生涯不是什么都追求技术,往测开方向的——测试的本职还是测试,成为测试专家、测试管理也是路
过期了
工具扫描不能代表安全的全部:
1-工具的指纹库是否持续更新:比如缺少新的漏洞信息,或者无法识别使用的中间件或工具
2-工具扫描的路径是否全面:有些 url 路径需要通过一定操作才能访问到
3-一些漏洞可能需要通过多次转换才能判断,这个一般工具不具备(自动化的内容一般都是简单遍历 payload),尤其 sql 注入
4-功能权限校验类需要人去做,工具可不知道业务上那些功能有权限区分
5-需要多步校验中逻辑漏洞、敏感信息、短信类滥用则需要人工和工具结合...
...
tips:安全测试水很深
啥时候增加 http 代理服务功能
底线就是:是 BUG 就提了!
该处理就回归,不处理写好谁同意不处理的。
@pytest.fixture(scope="session",autouse=False)
def connect_sql(db_alias):
你这里 connect_sql 是个 fixture,它调用的 db_alias 也应该是 fixture
所以你得
@pytest.fixture(scope="session",autouse=True)
def db_alias:
return ...
这种是使用某类前端框架的表单和字段组件,校验可能不使用原生的 value,而是组件本身存储机制。
所以除了改 input 的 value,可能还要改对应框架存储的值
比如这种 vue-element 的框架,日期组件的值和是否显示在这个组件字段的vue._data 中。
比如关闭日期选择器:
$(".el-date-editor").__vue__._data.pickerVisible=false
有个未尝试的想法,可以替换 selenium-wire 试试:
用 interceptor 来替换对应 js 的内容:
api 的文档中有个例子,这里是 html 文件,可以尝试改成 js 文件试试:
def interceptor(request):
if request.url == 'https://server.com/some/path':
request.create_response(
status_code=200,
headers={'Content-Type': 'text/html'}, # Optional headers dictionary
body='<html>Hello World!</html>' # Optional body
)
driver.request_interceptor = interceptor