python接口测试框架实战与自动化进阶
一、fiddler在工作中的运用
1、如何抓接口
抓紧手机端接口
①、在电脑终端输入:ipconfig ,找到电脑ip
②、打开手机,连接WiFi,进入WiFi详情,改用手动代理,将ip设置为电脑端的ip,端口默认(8888)
③、打开fiddler,找到并打开Fiddler Options ,选择Connections栏,做如下改动:
这样就可以尝试抓取接口了。
注:Python requests中文文档参考:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
二、unittest使用
python自带的包
1、unittest简单使用
使用unittest的test类:TestCase ,重载相关方法:
import unittest class TestMethod(unittest.TestCase): @classmethod def setUpClass(cls): print('重载setUpClass类方法,类实例化(初始化)时调用') @classmethod def tearDownClass(cls): print('重载tearDownClass方法,所有方法执行完后调用') def setUp(self): print('重载setUp方法,每个test方法执行前都会调用') def tearDown(self): print('重载tearDown方法,每个test方法执行完成后都会调用') def test_01(self): print('测试方法,必须以 test 开头') if __name__ == '__main__': unittest.main()
2、unittest基本介绍
参考:http://www.php.cn/python-tutorials-358252.html
unittest提供了多个类:
__all__ = ['TestResult', 'TestCase', 'TestSuite', 'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main', 'defaultTestLoader', 'SkipTest', 'skip'add_and_multiply。它会调用内嵌的multiply
函数。前面我们已经mock了multiply函数,此时通过add_and_multiply函数调用内部multiply函数,会被我们定义的mock对象取代。— 这个时候multiply函数被调用,传给它们的任何参数将被储存起来。顾名思义,mock对象的assert_called_once_with
方法就是一个不错的捷径来验证某个对象是否被一组特定的参数调用过。如果被调用了,测试通过。反之,assert_called_once_with
会抛出AssertionError
的异常。即通过传入参数3 跟5 ,判断multiply之前是否引入这两个参数被调用过。
好吧,我们遇到了很多实际问题。首先,我们通过mock将
multiply
函数从add_and_multiply
中分离出来。这就意味着我们的单元测试只针对add_and_multiply
的内部逻辑。只有针对add_and_multiply
的代码修改将影响测试的成功与否。其次,我们现在可以控制内嵌函数的输出,以确保外部函数处理了不同的情况。例如,
add_and_multiply
可能有逻辑条件依赖于multiply
的返回值:比如说,我们只想在乘积大于10的条件下返回一个值。通过人为设定multiply
的返回值,我们可以模拟乘积小于10的情况以及乘积大于10的情况,从而可以很容易测试我们的逻辑正确性。最后,我们现在可以验证被mock的函数被调用的次数,并传入了正确的参数。由于我们的mock对象取代了
multiply
函数的位置,我们知道任何针对multiply
函数的调用都会被重定向到该mock对象。当测试一个复杂的功能时,确保每一步都被正确调用将是一件非常令人欣慰的事情。
转载于:https://www.cnblogs.com/Eric15/articles/9801715.html