• 其实个人觉得 D 接口自己构造一些业务数据直接压就可以,对于业务来说,场景里 D 接口查询的是不是 jmeter 压的 C 接口数据应该影响不大,对于 C 接口我一般会写一个脚本去统计业务异步处理的正确性和处理时效,这个也是一个性能指标数据

  • 补充你的观点,有开发能力搞测开,我就不能图测开不加班不出差到点就走?没有业务上线压力那么大?需求设计一个部门内就搞定不用多部门扯皮?一个人前端后端设计全部搞了效率高?每次看到有开发能力干嘛不去干开发就心里不舒服,干测开就活该没啥开发能力?

  • 额 把那个什么临界部分控制器 disable 下试试呢 看起来有点像多并发下的锁 我记得默认情况下脚本本身就是按顺序执行的 只是因为多并发的原因 结果树显示会有错乱

  • 待执行的用例应该会以测试计划的维度来管理吧?前端展示测试计划的执行进度就可以,不过完整的执行过程不一定就只是用例执行,我这边还有测试报告生成、覆盖率数据生成、钉钉通知之类的,所以我这里会列出每一个待执行任务以及完成情况,用例执行任务处增加进度条,以已执行用例数/总用例数作为百分比显示执行进度。至于主要信息,日志及结果记录绑定每次运行的编号及执行的用例编号扔到数据库,前端就可以展示了

  • TPS 如果没有线上业务数据,我一般是用 28 原则来算,A 项目的 300 万事务量都不用乘 0.8,算 365*0.2=73 天全部跑完,每天业务量 300 万/73 约等于 4 万,4 万按 28 原则算也不乘 0.8 了,40000/(24*3600*0.2) 约等于 2.3,所以实际业务 TPS 预估到 3 就够,一般这种情况,我会给客户方一点面子,乘以个 10,TPS 定 30。这个是指标要求,跑一个小时无所谓,这个是验证一定压力下的短时间稳定性,关注重点在系统业务处理是否报错,系统资源是否问题。至于 B 项目就有点扯淡,你得直接回怼回去,2500 人提交审批又不是定个定时器来提交,如果要支持 2500 并发,需要另外设置场景,但 2500 并发的场景你得确定要达到的性能要求,性能要求高的话除了优化代码和配置策略外,大概率需要大集群来支持。至于 TPS,我还是觉得按业务量来算,不过你可以再给客户方留点面子。。。

  • 精准测试之覆盖 at 2023年01月12日

    感谢回复,前控控件和后端接口的映射关系,这个倒还好。主要是你说的第二个问题,比方说:通过前端解析,最后发现是一个确定按钮调用了后端一个/addUser 的接口,而这个确定按钮又在一个叫用户信息的 dialog 窗体中,而显示这个 dialog 又需要点击一个用户管理页面的新增按钮,要转到用户管理页面可能还是一个路由跳转,如果只是通过前端代码静态解析且都准确(请教有干过这个事的同学给个思路🙏 ),那能拿到只能是用户管理 - 新增 - 用户信息 - 确定这样一个控件链路与接口对应。但是我和功能测试人员讨论的,他们想要的其实是"用户管理 - 新增用户"这个功能链路与接口对应关系,因为用例就是以这个维度来维护的,前面的控件链路对他们来说没用,因为他们看不懂前端代码。这样就能通过精准分析获取到的接口影响范围拿到前端功能手工测试的功能影响范围。可这就需要有个功能业务和控件的映射关系表,如果不能自动生成而要手工维护这个表的话,工作量太大了,而且还要实时根据前端变动来更新这个表。

  • 精准测试之覆盖 at 2023年01月10日

    最近刚好也在做精准,做的东西和作者很像,但是碰到个问题,如何获取后端接口和前端功能的对应关系,在产品开发前期没有这方面积累的情况下,想通过前端代码去做分析扒出接口和前端控件对应关系,即使成功也是控件的链路而不是功能的链路,而且还要面对各种前端开发框架的复杂局面,请教下这块作者有什么思路不?

  • 个人理解:
    1、查询本身也是接口,它的查询结果正确性也是未知的,以未知作为期望值还是有风险的
    2、接口测试本身来说不应该依赖别的接口来做数据性校验,批量执行时,查询接口出问题,当前接口自动化用例其实相当于没有执行完成。流程性用例也应该是把当前接口作为前置用例来验证查询接口本身。
    3、不一定所有需要校验的数据都可通过查询接口查询出来

  • 我能想到的就 **,这个还能打出个 a 来:

    def get_para_name(**kwargs):
        print(kwargs)
    
    
    get_para_name(a=1)
    
  • 多线程

  • 好多字,先 mark😂

  • 用 () 把需要链式调用的代码括起来就可以了

  • 问题应该不在 http 请求,而是 json.dumps 方法,你在 dumps 里加上 ensure_ascii=False,再试试看

  • MTSC 参会感受 at 2020年11月24日

    没有 AI,自动化干不下去?哪个的分享?我得去看看去😂

  • 其实是支持的,用两个包,pycryptodome 和 pyOpenSSL,pyOpenSSL 的作用是从私钥文件中获取私钥,pycryptodome 是做加解密和签名。代码是公司内部的,不方便拿出来。只是有一点比较麻烦,就是 pycryptodome 官方不支持 nopadding 模式,如果你公司用的是这种模式的话,你要自己封装一个。另外,没记错,服务器端如果加密了返回报文应该用另一端的私钥解密

  • 这平台的作者有一颗少女的心😂

  • 仅楼主可见
  • 刚好前几天在弄,你可以参考这个链接:http://npm.taobao.org/mirrors/chromedriver/

  • 我记得好像是两个 html 文档 diff 了一下,然后根据变化(+-?)来进行合并,是精确到行的

  • 我这边的做法是:每次编译部署前都生成一份当前环境的覆盖率报告,需要总覆盖率报告时,以最后版本的覆盖率为基准,合并前面所有覆盖率报告数据,其实就是 html 的解析和样式的合并

  • 哎哟,竟然看到了崩坏三,我抽了不知道多少次就要一个电铠,就不给我,就卸了。。。

  • 我猜你是不是想要用 OrderedDict

  • 直接找下拉列表的元素找不到吗?那不应该啊,如果实在找不到,那要不就结合 Sikuli 来做可能会好一些,不想调用 Sikuli,也可以自己解析当前桌面截图像素来定位,建议还是尽量用 dom

  • 你能看到的 应该都是有 dom 的 你再找找。。。

  • 直接元素 send_keys 貌似是直接修改输入框的 value,你可以试一下 ActionChains 的 send_keys_to_element 方法,太久没搞 selenium,忘记了😂