单元测试,模拟用户Get登陆,并携带登录后的token访问接口

2023-11-08

        HttpClient _httpClient;
        HttpClient _businessHttpClient;

        private async Task<string> GetAccessToken()
        {
            _businessHttpClient = new HttpClient();
            _businessHttpClient.BaseAddress = new Uri("http://localhost:8998/Meet.WebApi/");
            _httpClient = new HttpClient();
            _httpClient.BaseAddress = new Uri("http://localhost:8998/HRManage.WebApi/api/UserLogin?username=admin&password=111111");
            var parameters = new Dictionary<string, string>();
            parameters.Add("username", "admin");
            parameters.Add("password", "111111");
            var response = await _httpClient.PostAsync(_httpClient.BaseAddress, new FormUrlEncodedContent(parameters));
            var responseValue = await response.Content.ReadAsStringAsync();

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var data = JsonConvert.DeserializeObject<ResultEntity<UserLoginResultDTO>>(responseValue);
                return data.Data.AccessToken;
            }
            else
            {
                return string.Empty;
            }
        }

        [TestMethod]
        public void GetMeetingById()
        {
            string tokenstring = GetAccessToken().Result;

            _businessHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenstring);
            var response = _businessHttpClient.GetAsync("Meet/GetMeetingById?Id=5C0062FF-542A-4C6E-BE28-5998EC3CEDE4").Result;
            var responseValue = response.Content.ReadAsStringAsync().Result;
            _businessHttpClient.Dispose();
            var data = JsonConvert.DeserializeObject<ResultEntity<MeetingOutDto>>(responseValue);
            Assert.AreEqual(true, JObject.Parse(responseValue)["IsSuccess"].Value<bool>(), JObject.Parse(responseValue)["Msg"].Value<string>());
        }

Post方式:

        HttpClient _httpClient;
        //模拟登陆
        public async Task<bool> Login()
        {
            _httpClient = new HttpClient();
            _httpClient.BaseAddress = new Uri("http://localhost:8088");//14199   //9011
            LoginInput log = new LoginInput() { mobile = "13981711707", pwd = "123123" };

            HttpContent httpcontent = new StringContent(JsonConvert.SerializeObject(log));
            httpcontent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var response = await _httpClient.PostAsync("hcApi/Login/login", httpcontent);
            var responseValue = await response.Content.ReadAsStringAsync();

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return JObject.Parse(responseValue)["isOK"].Value<bool>();
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 根据条件获取卫生院信息
        /// </summary>
        /// <returns></returns>
        [TestMethod]
        public async Task GetHealthCenterInfo()
        {
            await Login();
            
            var response = await _httpClient.GetAsync("hcApi/SampleEntry/GetHealthCenterInfo?hcID=57&&keyWord=&&pageIndex=1&&pageSize=10");
            var responseValue = await response.Content.ReadAsStringAsync();
            _httpClient.Dispose();
            Assert.AreEqual(0, JObject.Parse(responseValue)["errorCode"].Value<int>(), JObject.Parse(responseValue)["msg"].Value<string>());
        }

 

转载于:https://www.cnblogs.com/likui-bookHouse/p/9415462.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试,模拟用户Get登陆,并携带登录后的token访问接口 的相关文章

  • 如何克服原语按值传递的事实

    我有一段很长的代码来计算两个值 doubles 对我来说 我在几个地方使用了这段代码 为了坚持 DRY 原则 我应该将这段代码重构为一个很好的单元测试方法 但是我不能让它返回两个双精度数 而双精度数是原始的 因此不能按值传递和操作 我能想到
  • 如何使用 Apache POI API 将图像添加到 pptx 中添加的图像占位符?

    我已经预定义了带有文本和图像占位符的 pptx 模板 我如何从模板访问和修改这些占位符 我可以使用 POI pptx API 直接将图像和文本添加到幻灯片中 但如何将其添加到模板的占位符中 请参阅链接以了解如何添加占位符来创建固定模板 ht
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 当从服务类中调用时,Spring @Transactional 不适用于带注释的方法

    在下面的代码中 当方法内部 是从内部调用的方法外部 应该在交易范围内 但事实并非如此 但当方法内部 直接从调用我的控制器class 它受到事务的约束 有什么解释吗 这是控制器类 Controller public class MyContr
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s

随机推荐

  • 反射与注解

    反射与注解 一 反射 使用反射机制可以动态的获取当前class的信息 比如方法的信息 注解信息 方法的参数 属性 反射目的 方便开发者对框架的拓展 缺点 消耗一定资源 破坏封装性 二 字节码对象创建方式 Class class1 类名 cl
  • 测试学习(三)——用例编写

    一 穷举场景设计测试点 等价类划分法 针对穷举场景设计测试点 步骤 1 明确需求 2 确定有效和无效等价 3 提取数据 编写用例 用例总数原则 正向 有效数据集 一条用例尽可能覆盖多条 逆向 无效数据集 每一条用例都是一个单独用例 用例编写
  • Vue2按需引入vant组件

    1 先引入vant Ui 选择Vue2项目引入 引入 vant Ui npm i vant latest v2 S 按需引入 npm i babel plugin import D 2 在根目录创建 babel config js文件 mo
  • 学习笔记:射频基础测试参数(S参数、OP1dB、IMD、NF)

    本篇非常表面的介绍了一些射频测试测量的基本参数 主要包括有S参数 OP1dB IMD NF等基础测试测量 只针对个人方便记录 目录 1 S参数 2 OP1dB 1dB压缩点 3 IMD 互调 IP3 3阶截获点 4 NF 噪声系数 1 S参
  • HBase集群搭建记录

    本文目录 写在前面 step1 下载并解压HBase step2 环境变量的配置 step3 配置文件修改 1 hbase env sh修改 2 hbase site xml 修改 3 regionservers 修改 4 backup m
  • 什么是3D NAND闪存,它到底优秀在哪?

    科技云报道原创 随着SSD的普及 SSD已经不再那么神秘 开始逐渐被人们所熟知 但是对于3D NAND闪存 很多人还不是很了解 今天我们就来聊聊3D NAND这个话题 3D NAND出现的原因 要聊3D NAND闪存价值 我们需要快速回顾一
  • 小森生活显示服务器,小森生活无可用网关服务器处理怎么回事 要怎么处理

    小森生活无可用网关服务器的问题越来越严重了 部分玩家都出现了网络连接不顺畅 登录不上游戏的情况 那么遇到小森生活无可用网关服务器怎么办呢 下面小编就为大家带来无可用网关服务器处理方法 赶快来看下吧 小森生活无可用网关服务器怎么办 一 检查小
  • 网上惊现刘翔等30位明星QQ号.

    继明星电话 家庭住址相继被曝光之后 日前有好事者又发帖曝光30明星的QQ号码 周杰伦 刘德华等港台明星 张含韵 周笔畅 李宇春等内地明星都榜上有名 昨日经过记者求证 曝光的很多QQ号码都是明星正在使用的 而明星经纪人也表示 QQ号码曝光危害
  • 通过java实现word转PDF

    介绍 用于java项目中解决word转pdf的需求 转换的效果跟调用的工具类 字体库 源文件 是wps还是microsoft保存的 格式版本等 系统环境等多个因素相关 没有百分百完成的方法 只有不断尝试 选择适合的方法 以下介绍三个能实现该
  • css 实现表单验证效果

    实例
  • leecode541反转字符串(带有调试代码)

    完整带有调试代码 package heima study day3 import java util Scanner public class 反转字符串541 public static void main String args Sca
  • Web 【基础】 10分钟快速搭建一个网站

    接触web开发也有大半年了 下面我来总结一下如何从零开始搭建一个网站 其实搭建一个网站 可以简单到10分钟 10块钱就能搭建 也可以难到成千上万人 耗费数百万一同搭建数个月 目录 一 选择服务器 各种服务器的区别 购买云服务器 二 安装宝塔
  • @RequestMapping使用须知

    RequestMapping 使用须知 使用 RequestMapping 注解映射请求路径 即 你可以使用 RequestMapping注解来将请求URL映射到整个类上 或某个特定的方法上 即 RequestMapping 既可以定义在类
  • 关于OPenGL贴图莫名其妙扭曲

    原图 效果 这个问题查出来了 OpenGL要求所有的纹理都是4字节对齐的 即纹理的大小永远是4字节的倍数 通常这并不会出现什么问题 因为大部分纹理的宽度都为4的倍数并 或每像素使用4个字节 但是这个图片是jpg并且宽高不是4的倍数 所以出现
  • js获取当前年月日,格式(YYYY年mm月dd日)

    1 显示当前系统年月日 2023 01 21 格式
  • Glide的封装

    package com example et Ustlis import android content Context import android graphics Bitmap import android graphics draw
  • Mac环境下小米手机Root教程

    参考文章 小米手机解锁注意事项 小米手机BL解锁操作指南 小米手机获取 Root 权限教程 详细图文 准备环境 需要Win环境 解锁需要Win环境 解锁工具是exe版本 刷机也需要Win环境 fastboot是exe文件 1 手机解锁 需要
  • Maven基础篇

    一 为什么要使用Maven 随着我们使用越来越多的框架 或者框架封装程度越来越高 项目中使用的 jar 包也越来越多 项目中 一个模块里面用到上百个jar包是非常正常的 框架中使用的 jar 包 不仅数量庞大 而且彼此之间存在错综复杂的依赖
  • Numpy一维array转置

    参考 https www cnblogs com cymwill p 8358866 html 分析 Numpy相关的转置函数有T transpose等 使一维数组转置可以使用reshape实现 实现例子 import numpy as n
  • 单元测试,模拟用户Get登陆,并携带登录后的token访问接口

    HttpClient httpClient HttpClient businessHttpClient private async Task