ITPub博客

首页 > 自动化运维 > 大规模网络运维 > 一文掌握接口测试三大工具:Jmeter、Postman、PyCharm

一文掌握接口测试三大工具:Jmeter、Postman、PyCharm

原创 大规模网络运维 作者:Atstudy技术社区 时间:2025-04-03 10:26:20 0 删除 编辑
前言:

  对于接口的研究是有很多的,此次研究主要针对参考书 《Web接口开发与 自动化测试》, 北京:电子工业出版社,这本书中的两个POST接口,分别对其运用浏览器, Jmeter,POSTMAN,PyCharm进行测试,并获得结果。

   此后我还将继续对接口进行更深入的研究和分析。 软件测试的测试切入点是很多的,希望这篇文章对于软件测试的学习有所帮助。此次研究主要是自己搭建了Django的网站,然后运用:Jmeter,POSTMAN,PyCharm 这三种工具进行测试,主要涵盖的部分有:
  1:这三种工具不同的返回值校验断言的方法展示。其中包括使用JsonPath, Xpath 的用法。其中Jmeter还有Duration Assertion可以断言程序执行时间。
  2:这三种工具中对于Data ,Json的区别分析研究,什么情况下用的是Data,什么情况下用的是Json。
  3:比较正式的自动化测试常用的PyCharm的命令模式的演示。
  4:Pytest的特征,常用的使用范围等。
  5:如果想 SQL注入这些接口会如何?
  6:Jmeter批量add的时候,是否只有一条数据能成功添加?
   第一部分 创建两个Django 接口,并定义此接口的接口定义
  第一个接口介绍(登录接口-传递用户名和密码):
  主页的url为:http://127.0.0.1:8000/index/,这是一个简单的登录接口,接口的url是 http://127.0.0.1:8000/login_action/, method="post",含有两个输入框, 一个是用户名,一个是密码,当用户名和密码分别是 test , 123456 的时候,可以登录成功,登录成功之后,传递session(用户名)跳转到另一个接口: http://127.0.0.1:8000/event_action/
  然后在跳转成功的url地址上显示接收到的session用户名,并且显示登录成功的信息。
   以下是接口的定义:
  名称:
  登录接口
   描述:
  登录接口
   接口URL:
  http://127.0.0.1:8000/login_action/
   调用方法:
  POST
   传入参数:
  username的值为test
  password 的值为123456
   返回值:
  如果用户名和密码都输入正确,则返回登录成功的页面信息以及登录的用户名的值。
  如果用户名或者密码输入错误,则返回
  username or password error! 的信息
   状态码:
  无
   第二个接口介绍(传递数据的POST接口):
  这是一个POST接口,通过传递eid,name,limit,  status,  address,  start_time等数据信息获得返回值的JSON数据。
   以下是接口的定义:
  名称:
  增加项目
   描述:
  增加项目
   URL:
  http://127.0.0.1:8000/api/add_event/
   调用方法:
  POST
   传入参数:
  eid:          - 格式: 数字
  name:         - 格式: 字符串
  limit:          - 格式: 数字
  status:         - 格式: 数字(非必填)
  address:       - 格式: 字符串
  start_time:     - 格式: YYYY-MM-DD HH:MM:SS
   正确情况下的返回值:
  {'status': 200, 'message': 'add event success'}
   状态码:
  如果eid ,name ,limit , address , start_time 其中有任何一项为空, 返回状态码为:
  {'status': 10021, 'message': 'parameter error'}
  如果eid存在,则返回的状态码为:
  {'status': 10022, 'message': 'event id already exists'}
  如果name存在,则返回的状态码为:
  {'status': 10023, 'message': 'event name already exists'}
  如果start_time的格式不是YYYY-MM-DD HH:MM:SS, 则返回的状态码为:
  {'status': 10024, 'message': 'start_time format error'}
  如果提交的信息正确,则返回的状态码为:
  {'status': 200, 'message': 'add event success'}
   第二部分 使用WEB浏览器查看以上两个接口
  第一个接口

  在WEB浏览器的url地址中输入http://127.0.0.1:8000/index/,然后在用户名输入框输入test,密码输入框输入密码123456,按F12, 我们可以看到浏览器显示了传输的数据信息:

       可以到我的个人号:atstudy-js,这里有10W+ 热情踊跃的测试小伙伴们, 一起交流行业热点、测试技术各种干货, 一起共享面试经验、跳槽求职各种好用的。 欢迎加入->  多行业测试学习交流群,内含直播课+实战+面试资料。 【AI测试、 车载测试、自动化测试、银行、金融、游戏、AIGC...】

  查询Content-Type, 如果是application/json,那么在Pycharm中的 Requests.request中,要使用 json作为传递的名称,而不是data。但从以下内容中我们看到Content-Type的内容是 application/x-www-form-urlencoded, 因此在Pycharm中使用data作为传递的名称。
  由于接口的跳转, 从login_action 接口跳转到了 event_action接口,我们可以看到,login_action 接口还显示了 302等转移,跳转含义的信息。
  而在event_action接口的信息则是 200。
   第二个接口
  http://127.0.0.1:8000/api/add_event/
  由于这个接口还没有开发对应的前台界面,因此暂时无法使用浏览器查看到接口信息。
   第三部分 使用Jmeter测试以上两个接口
  第一个接口
  1:Jmeter的使用方法
  以下是第一个接口的Jmeter的设置方法,由于通过Session必须传递到event_action接口中,因此必须增加Http Cookie Manager的配置,否则无法保存Session值。
  返回信息
   2:断言的使用方式
  Response Assertion
  因为返回值中含有Success,所以可以设置Response Assertion 
   XPath Assertion
  当返回的内容是html的时候,可以设置Xpath Assertion
   3:查看SQL注入
  常用的SQL注入语句
  这次使用的SQL注入,我们在username 部分输入 test’/*, 在password部分输入 */’
  然后我们查看一下是否会产生SQL注入的问题。
  我们看到最终出现的结果是显示了 username or password error,因此这里不会产生 SQL注入。
   第二个接口
  1:Jmeter的使用方法
  以下是第二个接口的Jmeter的设置方法:
  返回信息
   2:断言的使用方式
  Json Assertion
  由于返回值的格式是Json格式,因此可以使用Json Assertion
   Duration Assertion 
   3:查看SQL注入
  设置一些常用的SQL注入语句并查看是否会有SQL注入现象,结果是没有SQL注入的现象。
   4:Jmeter批量add内容,查看结果如何?
  设置10个线程如下:
  设置各个参数如下:
  然后运行Jmeter,查看是否只有一条记录可以增加,而其余的9条记录,都应该报错,显示已经存在这个id号码。
  运行结果是符合预期的:
   第四部分 使用POSTMAN测试以上两个接口
  第一个接口
  1:POSTMAN的使用方法
  2:断言的使用方式
   第二个接口
  1:POSTMAN的使用方法
  2:断言的使用方式
   第五部分 使用PyCharm 和 Requests.request测试接口
  比较正式的自动化测试常用的PyCharm的命令模式的演示
  常用的PyCharm的自动化测试的pytest的接口命令语句是 (以下是模拟的命令,使用了数据驱动以及jsonpath)
  Pytest的特征,我们可以看到函数名称都是以 test 开头的, 并且可以使用数据驱动,有时,函数还可以使用fixture来传递参数。
  Pytest还可以用于Selenium等UI test的使用。
   第一个接口
  1:PyCharm的使用方法
  返回结果:
   2:断言的使用方式
  由于返回类型是html的类型,因此可以直接使用assert 返回内容中包含某个字符串
   第二个接口
  1:PyCharm的使用方法
  返回结果:

  2:断言的使用方式


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70034708/viewspace-3079894/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-10-23

  • 博文量
    99
  • 访问量
    96494