Python接口项目实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求,JSON判断登录是否成功

news2024/11/18 17:30:44

在这里插入图片描述

Python接口项目实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求,JSON判断登录是否成功

  • 实现功能描述
  • 1.首先获取到接口
    • 谷歌浏览器中获取接口信息
    • fiddler里面抓取接口信息
  • 2.创建一个xlsx文档
  • 3.导入我们需要使用的包
  • 4.用xlrd读取xlsx文档中的内容
  • 5.通过unittest框架实现requests post接口登录
  • 6.结果

关于本篇的完整代码已经上传有需要的可以进行下载

Python接口项目实战篇(1)

实现功能描述

本篇需要实现的功能就是读取xlsx中的账户密码,来实现requests接口post登录网站的请求本篇使用的网站是cms系统
关于这个系统大家可以在网上搜寻一下。具体功能实现流程的如图所示
在这里插入图片描述

1.首先获取到接口

谷歌浏览器中获取接口信息

登录之后点击开发者工具
在这里插入图片描述
再点击网络,再点Fetch/XHR抓取接口
在这里插入图片描述
我们可以看到我们抓取的接口就是这个loginJump.do接口,有了这个接口之后我们可以对它进行登录的请求

在这里插入图片描述

fiddler里面抓取接口信息

登录之后点击跳转就会看到登录的信息
在这里插入图片描述
点击json查看返回的数据,这条数据是一个很好用来判断json登录是否成功的一种情况,我们可以用这个msg来判断是否登陆成功
在这里插入图片描述

2.创建一个xlsx文档

如果你没有在python中安装xlrd可以直接在pycharm中用python interpreter中点加号进行安装,注意一定要用xlrd1.2版本如果高于这个版本是无法连接xlsx文档
在这里插入图片描述
在这里插入图片描述
xlsx中的账号密码
在这里插入图片描述

3.导入我们需要使用的包

import os
import xlrd
import unittest,requests
from ddt import ddt,data,unpack

4.用xlrd读取xlsx文档中的内容

class read_xlsx:
    def __init__(self,file):
        self.read_file = xlrd.open_workbook(os.path.join('D:\pythonpj\pytest',file))#读取本地xlsx的地址包
    def get_xlsx(self,idex):
        sheet_idex = self.read_file.sheet_by_index(idex)
        key =sheet_idex.row_values(0)
        l=[]
        for i in range(1,sheet_idex.nrows):#统计页中行数
            values = sheet_idex.row_values(i)
            print(values)
            key_values=zip(key,values)#创建迭代器
            dt = dict(key_values)#对key和values值进行字典拼接
            l.append(dt)#添加值进去l中
        return l
# read_xlsx('ex.xlsx')
da_ta=read_xlsx('ex.xlsx').get_xlsx(0)

代码写完后已经可以成功获取到本地的xlsx文档内的账号密码以字典的形式输出
在这里插入图片描述

5.通过unittest框架实现requests post接口登录

@ddt #使用ddt
class logjump(unittest.TestCase):
    @data(*da_ta)
    @unpack
    def test_lojump(self,**tst):#需要用test命名才能用unittest的测试框架
        url='http://192.168.52.129:8080/cms/manage/loginJump.do'
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        data = {'userAccount': tst['username'],
                'loginPwd': int(tst['pwd'])}  # 将键值对存放
        rps= requests.post(url=url,headers=headers,data=data)#传参
        print(rps.text)
        js =rps.json()#获取json值
        if js['msg']=='登录成功!':#设定断言
            print('恭喜你接口登录成功')
        else:
            print('接口登录不成功')
        assert js['msg'] == '登录成功!'  # 捕获断言
if __name__ == '__main__':
    unittest.main()

6.结果

可以看到unittest运行结果,第一个我们输入的账号密码正确,接口登录成功,第二我们输入的账号正确,密码错误,也就登录不成功,接口也登陆不成功,用例显示也是显示失败,因为第二个返回的json数据中msg值并不存在,相应的数据内容,所以就会报错。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

List-反向迭代器

List List接口使用 List:双向带头循环的链表,不支持随机访问,排序就是一个大问题 当大量的插入数据的时候就体现出了优势。 在任意位置以O(1)的时间复杂度插入数据. 只有一种遍历方式就是迭代器,因为他的物理结构是不连续的无…

05_xml

目录0、文档声明1.XML 简介2、xml 的作用?3、xml 语法3.1、文档声明3.2、xml 注释3.3、元素(标签)3.4、xml 属性3.5、语法规则:3.5.1)所有 XML 元素都须有关闭标签(也就是闭合)3.5.2&#xff09…

uniapp:常用跨端业务组件(ts版本)

插件内组件包含以下功能: 自定义状态栏组件(ZoNavBar)上拉加载状态组件(ZoLoading)弹窗组件(ZoPopup)搜索组件(ZoSearchBar)空数据组件(ZoEmpty)tab标签组件(ZoTabs)tab下拉筛选组件(ZoSelectTabs)底部导航组件(ZoTabBar)cell导航组件(ZoCell) 10.标题内容组件(ZoT…

iptables端口复用后门、sslh

iptables端口复用 创建端口复用链 创建端口复用规则将流量转到22端口 开启开关,接收到一个长为1139的icmp包,则将来源ip添加到LETMEIN表中 如果syn包来源ip处于letmein列表中,则跳转到LETMEIN链处理,有效时间为3600秒 开启复…

c++11 标准模板(STL)(std::multiset)(五)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

PyQt5编程基础 2.2 信号与槽函数

信号与槽函数信号&#xff08;Signal&#xff09;信号是在特定情况下被发射的一种通告。举例&#xff1a;PushButton的信号是鼠标单击时发射的clicked信号槽&#xff08;Slot&#xff09;对信号相应的函数。举例&#xff1a;Qwidget有一个槽函数&#xff0c;功能是关闭窗口信号…

Uncaught SyntaxError: Unexpected token ... 【bug记录】vue项目发布

项目场景&#xff1a; 项目场景&#xff1a;部署vue项目&#xff0c;组件或页面html使用ES6语法导致&#xff0c;界面无法显示。 客户那边采用了比较低版本的浏览器&#xff0c;自己电脑上却没有出现&#xff0c;也不方便调试测试。 问题描述 打开来控制台&#xff0c;看到异…

单片机开发---ESP32S3移植NES模拟器(一)

书接上文 《单片机开发—ESP32-S3模块上手》 《单片机开发—ESP32S3移植lvgl触摸屏》 参考内容 依旧是参考韦东山老师的作品来移植的 《ESP32|爷青回&#xff01;ESP32(单片机) NES模拟器_NES游戏机掌机教程(开源详细讲解实现代码&#xff01;)》 韦老师已经将代码开源&am…

深入解读神策分析云两大闭环,助力企业全面数字化转型应用

随着市场的发展、客户的深度使用以及全新的产品认知&#xff0c;神策希望能够帮助企业客户构建拥有正向反馈、持续提升、优化经营效率的数据应用闭环。本次&#xff0c;神策在用户行为分析的基础上&#xff0c;对分析云的整体产品架构进行全面升级&#xff0c;不仅包括公私域流…

json字符带有反斜杠\处理

目录说明说明 json字符带有反斜杠\&#xff0c;需要转义处理 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-text</artifactId><version>1.6</version></dependency>String json "{\"n…

解决安装2.4版本的percona-xtrabackup和5.6版本的mysql冲突的问题

问题描述&#xff1a;在阿里云上有一个5.6版本的mysql&#xff0c;想把备份的数据恢复到本地。按照阿里云的文档描述&#xff0c;本机mysql的版本也得是5.6&#xff0c;percona-xtrabackup版本得是2.4。于是开始动手操作&#xff0c;无非是在本机安装5.6版本的mysql和2.4版本的…

【C++】C++11语法 ~ 可变参数模板

&#x1f308;欢迎来到C专栏~可变参数模板 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&…

2月3日第壹简报,星期五,农历正月十三

2月3日第壹简报&#xff0c;星期五&#xff0c;农历正月十三坚持阅读&#xff0c;静待花开1. 香港&#xff1a;将向世界各地旅客派发50万张免费机票&#xff0c;3月1日起派发&#xff0c;为期6个月&#xff0c;率先向东南亚地区送出。2. 我国新增18处国际重要湿地&#xff0c;湿…

聚观早报|网易开放暴雪游戏退款申请通道;鱼跃医疗回应被罚270万

今日要闻&#xff1a;网易开放暴雪游戏退款申请通道&#xff1b;谷歌 ChatGPT 竞品搜索设计将迎来大改&#xff1b;“鱼跃医疗”回应被罚270万元&#xff1b;大众考虑在加拿大建设新的电池工厂&#xff1b;微软将把ChatGPT整合到必应搜索中网易开放暴雪游戏退款申请通道 2 月 1…

力扣刷题|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

LeetCode 654.最大二叉树 题目链接&#x1f517; LeetCode 654.最大二叉树 思路 最大二叉树的构建过程如下&#xff1a; 构造树一般采用的是前序遍历&#xff0c;因为先构造中间节点&#xff0c;然后递归构造左子树和右子树。 class Solution {public TreeNode constructM…

构造http请求的几种方式(附源码)

文章目录前言一、form表单构造http请求二、ajax构造http请求三、Java socket构造http请求总结前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎大家加入&#xff0c;一起交流学习~~ 一、form表单构造http请求 form (表单) 是…

SSH基础知识(一)

SSH基础知识SSH对称加密非对称加密如何生成秘钥如何管理秘钥不同版本ssh命令安装ssh启动ssh服务登录ssh退出ssh登录远程登录执行命令ssh参数端口转发本地转发远程转发动态转发最近有用到SFTP协议完成一些功能开发&#xff0c;这玩意和FTP比较像&#xff0c;当时以为是升级版&am…

FPGA和CPLD芯片选型介绍(二)

FPGA器件选型&#xff08;以Xilinx和Altera为例&#xff09;器件选型是件很严肃的事情&#xff0c;既要考虑性能又要兼顾成本&#xff0c;还要考虑长期供货的稳定性&#xff0c;因此很考验工程师的知识广度储备。一般而言&#xff0c;FPGA&#xff08;CPLD&#xff09;需要分三…

3、Maven——Maven创建java web工程,Maven search插件

目录 一、Maven创建java web工程 二、Maven创建java web项目的结构 1、添加项目目录 2、web.xml配置处理报错 三、IDEA更改XML版本 一、Maven创建java web工程 创建Empty Project空工程&#xff1b;右击Empty Project工程--->New--->Module--->Maven Archetype N…

Linux环境下安装软件合集【2】

Linux环境下安装软件合集【2】 Linux环境下安装软件合集【1】 1 安装tomcat 1.1 安装启动tomcat 下载tomcat压缩包 通过wget方式 wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.70/bin/apache-tomcat-9.0.70.tar.gz直接官网下载压缩包&…