我作为一个测试神兵,黄金左手点点点,钻石右手戳戳戳。
很多人问我:你写了那么多服务的脚本,你就没想过把它们工具化,做成一个平台吗?我想说的是:依项目性质而定。如果是迭代维护型项目,落地成测试平台是一个必然的结果。如果是定制交付型项目,那么大可不必。但往往领导要看到的是表面化的工作,有个可视化的成果来体现你的量化工作,这就是测试的无奈。真正决定能不能做好一个测试平台的条件= 项目的前景 + 人力的投入 + 时间的允许 + 技术的迭代 + 核心的规划 + 成果的体现。
建议有 mock 第三方服务需求的测试,上手 flask 吧,自己写个 mock 服务,丢到服务器上部署运行。你会打开一扇新的大门,从此你就会对这些已封装好的 mock 库呲之以鼻。不吹不黑,fastapi 也可以的,但我记得不支持 webservice。
来人,把朕的传国玉玺拿来,朕要亲自传给秀儿,守护江山的责任、匡复点点点指日可待啊,朕甚感欣喜,秀儿跪下接旨吧......
根据你接口的查询条件返回的数据,再在数据库用同样的查询条件查数据,先做数据统计,再对比。
数据断言是接口测试最基础的一项,后续你还会遇到很多不同格式或者是无法直接获取的数据,都是需要你先对数据做处理统计分层后,再断言的。加油兄弟,像我这种菜,都是靠自己一步步从对接口测试啥也不懂摸索到自己能正常封装框架的。
1,数据的断言,一般有三种数据基准的:第一种是直接断言该接口返回的数据是否准确,第二种是断言该接口返回的数据和数据库对应的表数据是否一致,第三种是断言该接口返回的数据和其他有关联接口的入参/返参是否一致。
2,至于你要怎么断言,要看你借助测试的工具,如果是 unittest 就用 self.assertEqual 断言,如果是 postman 就在 Tests 里用 pm.test,如果是 jmeter 就直接用 Beanshell 脚本更合理(java 语言兼容性更好)
这个简单
1,找开发,把调用支付/微信相关的接口和认证方式,以及消息体,包括异步形式,都给你锊清楚
2,直接上 python 脚本(不太建议直接用 mock 库,建议用 flask 服务直接写虚拟服务)
3,让开发把测试版本调用支付/微信的代码改为指向你的 flask 启动服务 ip 上(一般开发都是可以做成 xml/redis 配置的)
4,你可以本地启动 flask 脚本服务,也可以把脚本放到测试环境的远程服务器上然后给个定时任务启动脚本
5,最重要一点,你这个是你工作提升的体现,直接让领导和开发对你刮目相看,“哇塞,小伙子可以啊,晚上留下来加班吧 “
两个测试方法:
1,修改服务器时间(确保服务器的时区和时差和你客户端一致),这个还能顺带测试客户端是否走了缓存机制,会不会导致问题。
2,修改数据库时间(一般来说如果刷新机制是有存入数据库的即可)
首先感谢楼主为大家整理这些知识;其次如果是刚入行的测试,这些知识准备准备还行;最后我想说对于一个 4 年的测试经历,真正面试,你要是按照这么准备是一点卵用也没有。举个例子,面试官更常见是问你为什么要选这个框架,你怎么设计框架,你的设计难点有哪些,都是怎么解决的,你设计完后实现了什么测试需求,你实现的需求待优化的地方是什么,你准备怎么优化。任何一个测试,没有实践基础,而局限于理论知识,他就是失败的测试者,面试官是人精,而不是傻子
benshell 完全能满足,是看你怎么用,本身就是轻 java 脚本,jemter 尽量不要依赖正则,多用 beanshell,你就会发现很多你要问的难题,一下子就自己能解决了。
把第 1 个接口的请求写在 setUp 线程组里,用 beanshell 拿出所有要用的 ID 放在局部环境里;并发线程看你选择是暴力的并发还是阶梯压测,再写一个对应线程执行第 2 个接口,用 benashell 前置脚本取 ID。这样可以满足你,接口 1 只跑 1 次拿 ID,接口 2 跑并发。
我作为一个测试神兵,黄金左手点点点,钻石右手戳戳戳。