做接口测试,不管是使用 Postman,JMeter 工具来做,还是使用代码的方式来做。都需要进行接口上下游传参的处理。

接口中参数传递 - 图1
api_register_login.py

  1. # 导入 requests
  2. import requests
  3. phone = "13213331333"
  4. testcase={
  5. "register":{ # 注册接口
  6. "url":"http://49.233.108.117:28019/api/v1/user/register",
  7. "body":{
  8. "loginName": phone,
  9. "password": "123456"
  10. }
  11. },
  12. "login":{ # 登录接口
  13. "url":"http://49.233.108.117:28019/api/v1/user/login",
  14. "body":{
  15. "loginName": phone,
  16. "passwordMd5": "E10ADC3949BA59ABBE56E057F20F883E"
  17. }
  18. }
  19. }
  20. # 注册用户
  21. r1 = requests.post(url=testcase["register"]["url"],json=testcase["register"]["body"])
  22. print(r1.status_code,r1.json())
  23. # 登录
  24. r2 = requests.post(url=testcase["login"]["url"],json=testcase["login"]["body"])
  25. print(r2.status_code,r2.json())

生成随机手机号码

  1. # 导入 requests
  2. import requests
  3. # python中内置的随机模块
  4. import random
  5. # 生成随机值。 13000000000 -- 13999999999
  6. phone = random.randint(13000000000,13999999999)
  7. print(f'生成随机的手机号 {phone}')
  8. testcase={
  9. "register":{ # 注册接口
  10. "url":"http://49.233.108.117:28019/api/v1/user/register",
  11. "body":{
  12. "loginName": phone,
  13. "password": "123456"
  14. }
  15. },
  16. "login":{
  17. "url":"http://49.233.108.117:28019/api/v1/user/login",
  18. "body":{
  19. "loginName": phone,
  20. "passwordMd5": "E10ADC3949BA59ABBE56E057F20F883E"
  21. }
  22. }
  23. }
  24. # 注册用户
  25. r1 = requests.post(url=testcase["register"]["url"],json=testcase["register"]["body"])
  26. print(r1.status_code,r1.json())
  27. # 登录
  28. r2 = requests.post(url=testcase["login"]["url"],json=testcase["login"]["body"])
  29. print(r2.status_code,r2.json())

添加对应的token值

  1. # 导入 requests
  2. import requests
  3. # python中内置的随机模块
  4. import random
  5. # 生成随机值。 13000000000 -- 13999999999
  6. phone = random.randint(13000000000,13999999999)
  7. print(f'生成随机的手机号 {phone}')
  8. testcase={
  9. "header":{ # 信息头
  10. "token":None #默认没有token值
  11. },
  12. "register":{ # 注册接口
  13. "url":"http://49.233.108.117:28019/api/v1/user/register",
  14. "body":{
  15. "loginName": phone,
  16. "password": "123456"
  17. }
  18. },
  19. "login":{
  20. "url":"http://49.233.108.117:28019/api/v1/user/login",
  21. "body":{
  22. "loginName": phone,
  23. "passwordMd5": "E10ADC3949BA59ABBE56E057F20F883E"
  24. }
  25. },
  26. "search":{
  27. "url":"http://49.233.108.117:28019/api/v1/search",
  28. "query":{
  29. "keyword":"iphone"
  30. }
  31. }
  32. }
  33. # 注册用户
  34. r1 = requests.post(url=testcase["register"]["url"],json=testcase["register"]["body"])
  35. print(r1.status_code,r1.json())
  36. # 登录
  37. r2 = requests.post(url=testcase["login"]["url"],json=testcase["login"]["body"])
  38. print(r2.status_code,r2.json())
  39. # 登录成功之后,将token值更新到 testcase中header 信息头中
  40. testcase["header"]["token"] = r2.json()["data"]
  41. # 搜索 添加headers 信息头
  42. r3 = requests.get(url=testcase["search"]["url"],params=testcase["search"]["query"],headers=testcase["header"])
  43. print(r3.status_code,r3.json())

上下游传参

在Python接口自动化中 上下游 传参 比如上面例子中 传入 token值,传输方式 使用的是 将token值设置在字典中。通过更新字典的值, 下游接口中直接访问字典的值,进行上下游传参。