Python接口自动化测试框架思想以及源码结构

发表于:2019-11-28 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:石可乐    来源:猪圈子

  1.  前期了解
  2.  单个接口例子
   #-*-coding=utf-8-*-
  #author:shichao
  import requests
  import json
  def get_token():
  url1 = "https://cart.taobao.com/trail_mini_cart.htm"
  content = {'callback':'MiniCart.setData','t':'1526048972328'}
  web = requests.get(url=url1,params=content)
  print(web.url)
  print(web.text)
  ty = web.text
  return ty
  if __name__ == '__main__':
  get_token()
  3.  封装接口类源码以及报告输出实例
  1.一个接口地址一个类,每一个方法是一条testcase
  2. setUp()、tearDown()方法会分别作用于每个测试用例的开始和结束,如果每个类中的setUp()、tearDown(),所做的事情一样,那么可以封装一个自己的测试类
   #-*-coding=utf-8-*-
  #author:shichao
  import requests
  import unittest
  import json
  class MyTest(unittest.TestCase):     #封装测试环境的初始化和还原的类
  def setUp(self):                 #放对数据可操作的代码,如对mysql、momgodb的初始化等,这里不对数据库进行操作!
  print("start test")          #打印出start test
  pass
  def tearDown(self):              #与setUp()相对
  print("end test")            #打印出end test
  pass
  class test_xxx_get(MyTest):          #把这个接口封装一个类,下面的方法是具体的测试用例
  '''接口信息例如**功能'''          #这个描述接口名称,""" 文字 可打印在输出台
  def test_***_get(self):
  '''testcase001:***'''         #这个描述接口用例名称
  self.url = "http://***.***.***/api/xxx/get"  #请求url
  self.headers = {"Content-Type":"application/json"} #请求头
  self.data = {                            #请求参数写入data
  "token": "abcdefg",
  "id": 1,
  "param": {
  "QuId": 14
  }
  }    #self.用在方法属性中,表示是该方法的属性,不会影响其他方法的属性。
  r = requests.post(url = self.url,json = self.data,headers = self.headers)
  #return r.json()
  print (self.r.text)
  print (self.r.status_code)
  self.assertIn("true",self.r.text)     #断言判断接口返回是否符合要求,可以写多个断言!
  if __name__=="__main__":
  unittest.main()
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(MyTest("test_xxx_get"))
  # suiteTest.addTest(MyTest("test_xxx_get_002"))
  # 按照一定时间格式获取当前时间(防止测试报告覆盖)
  now = time.strftime(u'%Y-%m-%d-%H-%M-%S')
  # 确定生成报告的路径
  report_file = "自定义本地存储路径" + now + "_test_report.html"
  with open(report_file, 'wb') as report:
  runner = HTMLTestRunner.HTMLTestRunner(stream=report, title=u'title',
  description=u'描述',
  tester=u'测试人员')
  # runner = unittest.TextTestRunner()
  runner.run(suiteTest)
  report.close()
  unittest提供了全局的main()方法,使用它可以方便的将一个单元测试木块变成可以直接运行的测试脚本;
  main()方法使用TestLoader类来搜索所有包含在该木块中以“test”命名开头的测试方法,并自动执行它
  4.  py3HTML测试报告源代码以及历史文章
   # 基于py3HTMLTestRunner测试报
  告修改样式的源码下载地址:
  链接:https://pan.baidu.com/s/
  1HDc3jXtMVJEmFvSypalNoQ
  提取码:x6o1
  # 往期文章
  python接口自动化测试-unittest-批量用
  例管理
  基于py3-HTMLTestRunner源代码修改
  以及pycharm报告输出小工具
  selenium自动化测试时,chrome 出现“
  Chrome 正受到自动测试软件的控制”的
  解决办法
  个人在学习python这块,自学断断续续几个月,就下面这些东西,学的跟个狗似的,啥也不是,几天不操练什么都忘记,学习方法这块欠缺拿项目实战,以及师傅指点,
  上次是哪个颇有影响力的人某博发个动态,说学习python很简单,朋友圈被圈友霸屏了,这个社会真的是很跟风!哦哦!潘总!我是不是应该给他教点学费!来敬畏我内心的热血彭拜。
  学到现在个人表示,基础不牢固的还是一行一行代码从基础开始打起,可以先放弃一些百度copy的源码实例操练,没有多大意义。因为你有时候你真的不明白别人的一个"\"或者是一个方法代表什么意思 [ 深受其害的苦笑!]这句话敬前人造车子的码农。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号