• 测试平台系列(40) 找个开源项目测试


    大家好,我是米洛,一个测试开发博主,world很大, 你应该去看看!

    欢迎大家关注我的公众号: 测试开发坑货

    回顾

    上周插播了一个github登录的内容,没啥反响。那我们这周就继续完善用例相关的内容。

    题外话

    其实虽然我在做这样一个测试平台,但其实就像饭哥说的,存在一些问题:

    • 自己的平台没有落地

    • 半成品

    • 自己都没有亲身使用

      确实,虽然上家公司支撑到了百分之90多的业务线,但是里面结合了很多公司的内容,比如grpc微服务自动寻址yapi内部发布系统,数据工厂等相关的内容。

      这个项目虽然和当时的内容如出一辙(换了一种语言实现),但确又不太一样。

      为了更好地支持平台的发展,加上时间关系,所以我打算挑选一个麻雀虽小,但又五脏俱全的项目来进行测试。

      为了后续覆盖率相关的功能,我得找一个开源的Java项目,于是我发现了它,一个博客系统基于springboot+vue+element-ui:

    一般这样开源的项目都差不多是个半成品,但只要他有完善的登录(token/cookie机制),加上有一部分crud功能就行。

    这个地址我已经部署到我自己的服务器了,以后就可以直接来测试这个服务了,但第一步我们先要拎出里面的接口数据。

    服务地址: http://47.112.32.195:8081/index.html

    开始研究

    大概翻阅了一下它的认证模块,采用的是spring-security,这是我没接触过的全新领域。

    不过咱们不用慌,先看看他的登录是咋耍的。

    请求数据

    返回数据

    可以看到,它是一个form表单的POST请求,返回的内容还没有token这样的信息。这可如何是好?别怕,我们做这样的工具,不怕特例多,就怕特例少,导致兼容性不好

    咱们好像之前只支持了JSON,我们调试一下登录接口,确认一下:

    header部分

    可以看到登录失败了

    找下原因

    通过debug发现username是空字符串

    项目地址: https://github.com/lenve/VBlog.git

    我们把项目拉到本地https://github.com/lenve/VBlog.git debug发现,username是空字符串。

    大概率是我们的requests请求的姿势不对,那怎么办呢?

    先看看我们现在的requests请求方法怎么封装的。

    可以看到是这样封装的,然而我们的body是个字符串,但是如果我们要请求form表单的时候,body需要是dict。

    改造如下:

    如果Content-Type里面带有form了,那我们把body要变成dict(通过json.loads)。

    改造后实验一下:

    如此,我们便支持了json还有form的http请求,至于file类型,我们遇到再继续研究。

    可是token呢?

    别急,我们切换到Cookietab,可以看到Cookie里面已带上了JSESSIONID,我们可通过这个,继续我们后面需要登录的请求。与token相差不大。

    记一下优化点,当请求类型切换到form/json的时候自动改变Content-Type,这样体验会更好一些!

    下一篇,我们开始编写数据初始化相关的工作。比如我要查询一篇文章,需要先登录,那么需要初始化的数据就是上面提到的JSESSIONID

    在线演示地址: http://test.pity.fun/

    前端代码仓库: https://github.com/wuranxu/pityWeb

    后端代码仓库: https://github.com/wuranxu/pity

  • 相关阅读:
    这里下载QT速度飞快QT下载(多种下载通道+所有版本)
    一个查找窗口和子窗口的MFC类
    office 2007 安装和激活
    kafaka安装和使用及分析
    flume安装和使用
    Hbase的使用和分析
    Nginx源码安装
    hadoop集群下安装hive
    hadoop集群(完全分布式)下hbase的安装和配置
    linux下时区设置和时间同步
  • 原文地址:https://www.cnblogs.com/we8fans/p/15286739.html
Copyright © 2020-2023  润新知