当前位置:   article > 正文

python3支持在通过requests库调试django后台接口写测试用例

python3支持在通过requests库调试django后台接口写测试用例

python测试用例库使用

unittest库可以支持单元测试用例编写和验证。

基本使用方法

运行文件可以将文件中的用例全部执行一遍

  1. import unittest
  2. class TestBasicFunc(unittest.TestCase):
  3. def test_basic_asert(self):
  4. self.assertEqual(1, 1)
  5. if __name__=="__main__":
  6. unittest.main()

运行结果如下图:

基本断言用法

基本断言用法如下:

  1. import unittest
  2. class TestBasicFunc(unittest.TestCase):
  3. def test_basic_asert(self):
  4. self.assertEqual(1, 1)
  5. self.assertNotEqual(1, 2)
  6. self.assertAlmostEqual(3.01, 3.02, places=1)
  7. self.assertNotAlmostEqual(3.1, 2.9, places=2)
  8. self.assertTrue(3>2)
  9. self.assertFalse(3<2)
  10. self.assertIs("Hello", str("Hello"))
  11. self.assertIn("s", "is a good")

python支持requests库发送网络请求

发送get请求,解析对应返回json文本

  1. import requests
  2. def try_request_get_test_case():
  3. url = "http://127.0.0.1:8000/index/"
  4. headers = {"Content-Type": "application/json"}
  5. response = requests.get(url, headers=headers)
  6. return_json = json.loads(response.text)
  7. print(return_json)
  8. return return_json

发送post请求

  1. import requests
  2. def try_request_post_test_case():
  3. url = "http://127.0.0.1:8000/index/"
  4. payload = {
  5. "postWoman" : "localTest"
  6. }
  7. headers = {"Content-Type": "application/json"}
  8. response = requests.post(url, json=payload, headers=headers)
  9. return_json = json.loads(response.text)
  10. print(return_json)
  11. return return_json

django支持解析json格式body

解析json格式的body,需要用.body,而不是get函数

  1. from django.shortcuts import render
  2. from django.shortcuts import HttpResponse
  3. import json
  4. # Create your views here.
  5. def index(request):
  6. postWoman=""
  7. if request.method == "POST":
  8. print("index!")
  9. body_json = json.loads(request.body)
  10. postWoman = body_json["postWoman"]
  11. print(postWoman)
  12. data = {
  13. 'name':"hhhh",
  14. 'age':'15',
  15. 'item':"test",
  16. "postWoman":postWoman
  17. }
  18. return HttpResponse(json.dumps(data));

整个测试用例demo

  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. import requests
  4. import json
  5. import unittest
  6. def try_request_get_test_case():
  7. url = "http://127.0.0.1:8000/index/"
  8. headers = {"Content-Type": "application/json"}
  9. response = requests.get(url, headers=headers)
  10. return_json = json.loads(response.text)
  11. print(return_json)
  12. return return_json
  13. def try_request_post_test_case():
  14. url = "http://127.0.0.1:8000/index/"
  15. payload = {
  16. "postWoman" : "localTest"
  17. }
  18. headers = {"Content-Type": "application/json"}
  19. response = requests.post(url, json=payload, headers=headers)
  20. return_json = json.loads(response.text)
  21. print(return_json)
  22. return return_json
  23. class TestBasicFunc(unittest.TestCase):
  24. def test_basic_asert(self):
  25. self.assertEqual(1, 1)
  26. self.assertNotEqual(1, 2)
  27. self.assertAlmostEqual(3.01, 3.02, places=1)
  28. self.assertNotAlmostEqual(3.1, 2.9, places=2)
  29. self.assertTrue(3>2)
  30. self.assertFalse(3<2)
  31. self.assertIs("Hello", str("Hello"))
  32. self.assertIn("s", "is a good")
  33. class TestRequestGet(unittest.TestCase):
  34. def test_get_func(self):
  35. return_json = try_request_get_test_case()
  36. self.assertEqual(return_json["postWoman"], "")
  37. def test_post_func(self):
  38. return_json = try_request_post_test_case()
  39. self.assertEqual(return_json["postWoman"], "localTest")
  40. if __name__=="__main__":
  41. unittest.main()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56509
推荐阅读
相关标签
  

闽ICP备14008679号