接口测试框架实战与自动化进阶指南!

Posted 51Testing软件测试网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试框架实战与自动化进阶指南!相关的知识,希望对你有一定的参考价值。

1、准备工作

  a、本机已配置好Python 3.X开发环境。开发工具推荐PyCharm

  b、安装requests库,命令:pip install requests。

  c、准备好要测试接口的相关信息:请求url,header,body等。

  本次测试使用的接口是使用Django框架开发的简单接口,header为空,不涉及cookie,实际的接口测试过程中header一般不为空。

2、编写接口测试代码

  以post请求为例,测试代码如下:

1 #coding:utf-8

2 #导入request库

3 import  requests

4 #请求URL

5 url = "http://127.0.0.1:8089/login/"

6 #请求数据

7 data = {

8     "username":"stephen",

9     "password":123456

10 }

11 #发送请求,一般还需要提供header信息,此处为demo,暂不关注

12 reponse1 = requests.post(url=url,data=data)

13 res_json = reponse1.json()

14 print(res_json)

15 flag =  reponse1.status_code == 200  and res_json["status"] == 200  and res_json["msg"]=="login sucesss"

16 #假如http code为200,status为“200” msg为“login sucesss”则测试通过

17 if flag:

18     print("pass")

19 else:

20     print("fail")

   运行结果:

接口测试框架实战与自动化进阶指南!

  以get接口为例,测试代码如下:

1 #coding:utf-8

2 #导入request库

3 import  requests

4 #请求URL

5 url = "http://127.0.0.1:8089/login?username=vicent&tel=15209876533"

6 res = requests.get(url=url)

7 print(res.json())

    运行结果:

接口测试框架实战与自动化进阶指南!

3、优化

  上面的代码虽然实现了接口自动化,但是代码不可复用。GET请求发送使用的是方法:requests.get,POST请求发送使用的是方法:requests.psot。

  可以编写一个函数,传入请求的类型是GET,还是POST或者其它的类型。

1 #coding:utf-8

2 #导入request库

3 import  requests

4 def http_run(method,url,data=None,headers=None):

5     if method == "GET":

6         res = requests.get(url=url,data=data,headers=headers)

7     else:

8         res =  requests.post(url=url,data=data,headers=headers)

9     return res

10

11 #case1 psot

12 url = "http://127.0.0.1:8089/login/"

13 data = {

14     "username":"stephen",

15     "password":123456

16 }

17 #发送请求

18 res = http_run("POST",url=url,data=data)

19 #校验结果

20

21 assert res.json()["status"] == 200

22 #case2 get

23 #发送请求

24 url1 = "http://127.0.0.1:8089/login?username=vicent&tel=15209876533"

25 res1= http_run("GET",url=url1)

26 #校验结果

27 assert res1.json()["tel"] =="15209876533" 

 4、引入unittest单元测试框架管理用例

  先将上面优化过的http_run方法,抽象成一个class,方便后续调用

1 import requests

2 class http_run:

3     def http_run(self,method,url,data=None,headers=None):

4         if method == "GET":

5             res = requests.get(url=url,data=data,headers=headers)

6         else:

7              res =  requests.post(url=url,data=data,headers=headers)

8         return res

1 #导入unittest包

2 import unittest

3 #定义一个class http_test,继承于unittest.TestCase

4 class http_test(unittest.TestCase):

5     #在每个测试用例执行前运行的方法

6     def setUp(self):

7         print("run before test case")

8         #实例化 http_run

9         self.run = http_run()

10

11     #测试用例,必须以test开头

12     def test_get(self):

13         url1 = "http://127.0.0.1:8089/login?username=vicent&tel=15209876533"

14         res = self.run.http_run("GET",url1)

15         print(res.json())

16         self.assertEqual(res.json()["tel"],"15209876533")

17     def test_post(self):

18         url = "http://127.0.0.1:8089/login/"

19         data = {

20               "username":"stephen",

21                "password":123456

22         }

23         res = self.run.http_run("POST",url,data)

24         print(res.json())

25         self.assertEqual(res.json()["status"],200)

26     #在每个测试用例执行后运行的方法

27     def tearDown(self):

28         print("run after test case")

29 if  __name__ == "__main__":

30     #创建测试套

31     suite = unittest.TestSuite()

32     #往测试套中添加用例

33     suite.addTest(http_test("test_get"))

34     suite.addTest(http_test("test_post"))

35     runner = unittest.TextTestRunner()

36     #运行测试用例

37     runner.run(suite)

   运行结果:

接口测试框架实战与自动化进阶指南!

  unittest除了用于写单元测试外,还可以完成接口自动化,基于unittest可以完成接口自动化框架的开发。


接口测试框架实战与自动化进阶指南!
推荐阅读

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

上文内容不用于商业目的,如涉及知识产权问题,请联系小编(021-64471599-8017)。

接口测试框架实战与自动化进阶指南!
“阅读原文”一起来充电吧!
接口测试框架实战与自动化进阶指南!
爱我请给我好看!

以上是关于接口测试框架实战与自动化进阶指南!的主要内容,如果未能解决你的问题,请参考以下文章

接口测试框架实战| JSON 请求与响应断言

接口测试入门课 带你进阶接口测试

好书送不停| 周四《Selenium WebDriver 3.0 自动化测试框架实战指南》

最全面的Java接口自动化测试实战

最全面的Java接口自动化测试实战

流程封装与基于加密接口的测试用例设计(接口测试框架实战)