之前写过最简单的接口测试用例,本次利用unittest进行用例管理,并出测试报告,前两个用例是两个不同网页的get用例,第三个是需要登录才能访问的网页A,并在其基础上访问一个需要在A页面点开链接才能访问的网页B,第四个用例是直接访问网页B,下面是代码

# encoding=utf-8
import requests,unittest,HTMLTestRunner

class Testbaiduapi(unittest.TestCase):
  def setUp(self):
    pass

  def testsearch(self):
    url = "http://10.221.137.68:8180/ldp/index.jsp"
    r = requests.get(url,params=None)
    assert u'校验点' in r.text

  def testsearch2(self):
    url = "http://csp.travelsky.com/csp/login"
    r = requests.get(url)
    assert u'校验点' in r.text

  def testsearch3(self):

    params = {
      "username":"用户名",
      "password":"密码",
      "lt":"LT-507280-fxjpCVW6a3FFcfTa6EeRbDKeDr0DHe",
      "execution":"e1s1",
      "submit": "登录" ,
    }
    headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0",
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
      "Accept-Language": "zh-CN,zh;q=0.8",
      "Accept-Encoding": "gzip, deflate",
      "Connection": "keep-alive",
      "Host":"authcenter.travelsky.net:8443",
      "Referer":"https://authcenter.travelsky.net:8443/authcenter/login",
    }
    session = requests.session()
    url = "http://home.travelsky.net/publish/zghxnw/index.html"
    r = session.post(url, data=params,headers=headers,verify=False)
    assert u'今天我生日' in r.text
    url2="http://home.travelsky.net/publish/zghxnw/847/860/863/index.html"
    s = session.get(url2)
    assert u'三里屯办公区' in s.text

  def testsearch4(self):
    params = {
      "username":"用户名",
      "password":"密码",
      "lt":"LT-507280-fxjpCVW6a3FFcfTa6EeRbDKeDr0DHe",
      "execution":"e1s1",
      "submit": "登录" ,
    }

    headers = {
      "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0",
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
      "Accept-Language": "zh-CN,zh;q=0.8",
      "Accept-Encoding": "gzip, deflate",
      "Connection": "keep-alive",
      "Host":"authcenter.travelsky.net:8443",
      "Referer":"https://authcenter.travelsky.net:8443/authcenter/login",
    }
    url="http://home.travelsky.net/publish/zghxnw/847/860/863/index.html"
    s = requests.post(url, data=params,headers=headers,verify=False)
    assert u'三里屯办公区' in s.text
if __name__=='__main__':
  report_dir= r's.html'
  re_open= open(report_dir,'wb')
  suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi)
  runner=HTMLTestRunner.HTMLTestRunner(
      stream=re_open,
    title=u'接口测试报告',
    description=u'接口测试详情'
  )
  runner.run(suite)

A网页抓包信息,用来填写接口信息内容

A网页的校验信息

B网页校验信息

我们第三个用例跳过登录页面直接访问登录成功后的首页,不过需要先抓包登录报文的报文头和登录信息,附在post报文上,然后我们特意用session来进行操作,这样在进行后续操作时只需要直接get目的网址就行了,比如B网页的网址,可以直接访问,当然用来测试只要在每个网页添加校验信息即可,一样可以起到测试的作用

但是如果B网页如果登录不成功,那么整个第三个用例会报错,可以预见如果在第三个用例爬取多个网页,那么其中任何一个网页有问题都会导致整个用例报错,对于测试人员排查显得太麻烦了,于是我门单独把B网页写进第四个用例,当然需要重新填写报文头和登录信息,并用post发报,因为只是爬取一个网页所以没有必要用session,只要requests即可

运行结果及报告

requests,unittest——多接口用例,以及需要先登录再发报的用例的更多相关文章

  1. python3+requests+unittest:接口自动化测试(一)

    转载请表明出处:https://www.cnblogs.com/shapeL/p/9179484.html 简单介绍框架的实现逻辑,参考代码的git地址: https://github.com/zha ...

  2. 使用python+requests+unittest实现接口自动化测试

    这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下. 一.整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用. Common:公共方法:主要放 ...

  3. Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架

    整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport  多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLR ...

  4. 转载:python + requests实现的接口自动化框架详细教程

    转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...

  5. python + requests实现的接口自动化框架详细教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  6. 对比3种接口测试的工具:jmeter+ant;postman;python的requests+unittest或requests+excel

    这篇随笔主要是对比下笔者接触过的3种接口测试工具,从实际使用的角度来分析下3种工具各自的特点 分别为:jmeter.postman.python的requests+unittest或requests+ ...

  7. requests+unittest+ddt+xlrd+pymysql+BeautifulReport数据驱动

    # ddcapitestpython XXX接口自动化测试 # 一.数据驱动的思路 1.采用requests+unittest+ddt+xlrd+pymysql+BeautifulReport 2.r ...

  8. Python3 + requests + unittest接口测试

    一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...

  9. Python requests介绍之接口介绍

    Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...

随机推荐

  1. 机器学习基石笔记:Homework #2 decision stump相关习题

    原文地址:http://www.jianshu.com/p/4bc01760ac20 问题描述 程序实现 17-18 # coding: utf-8 import numpy as np import ...

  2. HDU 1165 公式推导题

    题目链接: acm.hdu.edu.cn/showproblem.php?pid=1165 Eddy's research II Time Limit: 4000/2000 MS (Java/Othe ...

  3. lwip BUG ,导致 系统 死机

    pcb->snd_queuelen >= pbuf_clen(next->p) sys_arch_assert: in ..\..\User\lwip\src\core\tcp_in ...

  4. Vue学习—Vue写一个图片轮播组件

    1.先看效果: 熟悉的图片轮播,只要是个网站,百分之90以上会有个图片轮播.我认为使用图片轮播. 第一可以给人以一种美观的感受,而不会显得网站那么呆板, 第二可以增加显示内容,同样的区域可以显示更多内 ...

  5. Order by排序

    asc 升序(默认),desc 降序 order by 后面  可以加 列.表达式.别名.序号(从1开始) desc; --表达式 年薪 from emp order by 年薪 desc; --别名 ...

  6. 用 map 表达互斥逻辑

    在这个开发周期遇到这样一个需求: 管理员可以给子账号配置权限,有些权限存在互斥不可同时勾选,比如 审核员和代采.审核和采购员不可同时勾选 之前同事实现的方式如下: 这样每添加一个互斥关系就要遍历一次, ...

  7. Scala相关笔记

    一.Scala概述以及安装 1.   什么是Scala Scala 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行于 Java 平台(Java 虚拟机 ...

  8. PHP-----PHP程序设计基础教程----第一章PHP开篇

    本章内容知识体系如下所示: 一.PHP基础知识 1.1 Web技术 服务器与客户端 服务器:能够提供某种服务的电脑 客户端:想使用服务器所提供服务的电脑 服务器也是一台电脑,必须安装操作系统.否则就是 ...

  9. Delphi Android下包含第三方DEX

    1.将jar转换为dex call dx --dex -verbose --output=.\output\dex\test_classes.dex --positions=lines .\outpu ...

  10. 通过XShell实现windows文件上传到Linux服务器上

    .XShell上传文件到Linux服务器上 在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输 1:首先连接上一台Linux主机 2: ...