1.json 和字典 dict 的区别?
json 本质上还是字符串,只是按 key:value 这种键值对的格式来的字符串.
2.测试的数据你放在哪?
1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配
置文件里(如 ini).
2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函
数生成
3.对于一个接口有多组测试的参数,可以参数化,数据放 yaml,text,json,excel
都可以
4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到
数据库,每次数据初始化,用完后再清理
5.对于邮箱配置的一些参数,可以用 ini 配置文件
6.对于全部是独立的接口项目,可以用数据驱动方式,用 excel/csv 管理测试的
接口数据
7.对于少量的静态数据,比如一个接口的测试数据,也就 2-3 组,可以写到 py
脚本的开头,十年八年都不会变更的
总之不同的测试数据,可以用不同的文件管理
3.什么是数据驱动,如何参数化?
@ddt.ddt
class Test(unittest.TestCase):
@ddt.data(*datas)
def test_(self, d):
print("测试数据:%s" % d)
if __name__ == "__main__":
unittest.main()
import pytest
@pytest.mark.parametrize("test_input,expected",
[ ("3+5", 8),
("2+4", 6),
("6 * 9", 42),
])
def test_eval(test_input, expected):
assert eval(test_input) == expected
if __name__ == "__main__":
pytest.main(["-s", "test_canshu1.py"])
4.下个接口请求参数依赖上个接口的返回数据
5.依赖于登录的接口如何处理
6.依赖第三方的接口如何处理
7.不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
8.接口产生的垃圾数据如何清理
9.一个订单的几种状态如何全部测到?
mock 能做什么
1.前后端联调,如果你是一个前端页面开发,现在需要开发一个功能:
下一个订单,支付页面的接口,根据支付结果,支付成功,展示支付成功
页,支付失败,展示支付失败页。
要完成此功能,你需要调用后端的接口,根据返回给你的结果,来展示不
同的页面。此时后端接口还没开发好,
作为一个前端开发总不能等别人开发好了,你再开发,那你只有加班的命
了。
为了同步开发完成任务,此时,你可以根据接口文档的规定,把接口的地
址和入参传过去,然后自己 mock 接口的不同返回界面,来完成前端的开
发任务
2.单元测试,单元测试的目的是测试某个小小单元的功能,但现实中开发
的函数或方法都是有依赖关系的,比如 b 函数的参数,需要调用 a 函数的
返回结果,但是我前面已经测试 a 函数了
这种情况下,就不需要再测一次 a 函数了,此时就可以用 mock 模块来模
拟调用这部分内容,并给出返回结果
3.第三方接口依赖,在做接口自动化的时候,有时候需要调用第三方的接
口,但是别人公司的接口服务不受你的控制,有可能别人提供的测试环境
今天服务给你开着,别人就关掉了,
给自动化接口测试带来很多的麻烦,此时就可以自己写一个 mock-server
来模拟接口的返回数据
网友评论