软件测试 接口测试 实战 微信公众号平台 Postman+newman+jenkins 实现自动生成报告并持续集成

2023-11-07

文章目录

1 创建请求

1.1 获得appid和secret

第一,打开微信公众平台网址https://mp.weixin.qq.com/,找到开发文档,如下图所示:
在这里插入图片描述
第二步,找到接口测试号申请,进入微信公众账号测试号申请系统,如下图所示:
在这里插入图片描述
最后,微信扫一扫,获取自己微信号的appID和appsecret,如下图所示:
在这里插入图片描述
微信公众平台API文档如下链接:

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

1.2 获取token值

查看API文档,接口调用请求说明,如下:

https请求方式: GET 
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数说明如下:

参数 是否必须 说明
grant_type 获取access_token填写client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

新建文件为“微信公号接口测试”,新建请求为“获取token值”,在请求方式为get,参数输入,如下图所示:
在这里插入图片描述
点击【Send】按钮,查看响应,如下图所示:
在这里插入图片描述

返回说明,如下所示:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

参数说明
access_token 获取到的凭证
expires_in 凭证有效时间,单位:秒

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为 AppID 无效错误),如下:

{"errcode":40013,"errmsg":"invalid appid"}

返回码说明,如下表:

返回码 说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40001 AppSecret错误或者 AppSecret 不属于这个公众号,请开发者确认 AppSecret 的正确性
40002 请确保grant_type字段值为client_credential
40164 调用接口的 IP 地址不在白名单中,请在接口 IP 白名单中进行设置。
89503 此 IP 调用需要管理员确认,请联系管理员
89501 此 IP 正在等待管理员确认,请联系管理员
89506 24小时内该 IP 被管理员拒绝调用两次,24小时内不可再使用该 IP 调用
89507 1小时内该 IP 被管理员拒绝调用一次,1小时内不可再使用该 IP 调用

1.3 获取公众号已创建的标签接口

输入url地址:https://api.weixin.qq.com/cgi-bin/tags/get
参数为刚刚的access_token值,如下所示:
在这里插入图片描述

点击【Send】按钮,查看返回结果,如下所示:
在这里插入图片描述

1.4 创建标签接口

新建请求,名为“创建标签接口”,填写参数以及参数值,如下所示:
在这里插入图片描述
在Body中,raw输入,以json格式输入,如下所示:
在这里插入图片描述
点击【Send】按钮,如下图示:
在这里插入图片描述

2 接口关联

通过上面三个接口观察,三个接口参数都需要access_token的值,可以将access_token的值提取出来,设置为全局变量,其他接口使用{{access_token}}形式调用access_token的值。

2.1 使用json提取器,提取access_token的值

在Tests中首先查看响应的信息,然后使用json提取access_token参数以及其的值,最后将access_token的值设置为全局变量,如下图示:
在这里插入图片描述
查看是否将access_token的值设置为全局变量,点击“眼睛”,如下图示:
在这里插入图片描述

即成功将access_token的值设置为全局变量!

在接口名为“2 获取公众号已创建的标签接口”,使用全局变量,如下图示:
在这里插入图片描述

在接口名为“3 创建标签接口”,使用全局变量,如下图示:
在这里插入图片描述

注意传入的json中的name的值不能重复,所以为广东123,如下图示:
在这里插入图片描述

每次在name创建标签接口name的值都不能重复,有没有办法让它每次自动创建不同的name的值?有的,可以使用内置动态参数或自定义动态参数。

2.2 使用正则提取器,提取access_token的值

responseBody调用match方法,新建正则表达式匹配,(.*?)匹配access_token的值,将结果存入result变量,在console显示,代码如下:

var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result)

console打印出的结果,如下图所示:
在这里插入图片描述

将access_token的值设置为全局变量,如下图所示:
在这里插入图片描述

全局变量设置成功,如下图所示:
在这里插入图片描述

2.3 提取响应头的信息(Cookie……)

提取响应头信息中的Content-Type信息,如下图所示:
在这里插入图片描述

响应模块中的Content-Type信息来源,如下图所示:
在这里插入图片描述
输入结果,如下图所示:
在这里插入图片描述

2.4 从Cookie里面提取变量

var token = postman.getResponseCookie("csrf_token");
console.log(csrf_token.value)

csrf_token为响应模块中Cookie,如下图所示:
在这里插入图片描述

小结

接口关联通过定义全局变量,全局变量供其他接口使用,使用全局变量的方法{{全局变量名}}。全局变量可以通过json和正则表达式提取。

3 Postman内置动态参数以及自定义动态参数

接口测试中尝尝出现接口的参数值使用随机数。

3.1 内置动态参数

{{$timestamp}}	生成当前时间的时间戳
{{$randomInt}}	生成0-1000之间的随机数
{{$guid}}		生成随机GUID字符串

在“创建标签接口”的Body中添加{{$timestamp}},如下图所示:
在这里插入图片描述

运行结果,如下图所示:
在这里插入图片描述

3.2 自动动态参数(重点),为name值使用

3.2.1 自定义时间戳

首先,在脚本运行之前,调用Date中的now方法,获取当前时间,并且将当前时间设置为全局变量,如下图所示:
在这里插入图片描述
然后,在Body中使用该全局变量,如下图所示:

在这里插入图片描述
最后查看结果,如下图所示:
在这里插入图片描述

3.2.2 接口请求停留3秒

代码如下:

//让接口请求停留3秒(效果如python的sleep(3))
const sleep = (milliseconds) => {
    const start = Date.now();
    while(Date.now() <= start + milliseconds){}
};
sleep(3000);
console.log("1");

首先,在脚本运行之前,让接口请求停留3秒,输入1,如下图所示:
在这里插入图片描述
然后,在接口请求的断言中,让接口请求停留3秒,输入2,如下图所示:
在这里插入图片描述
最后,在Console查看结果,运行成功,如下图所示:
在这里插入图片描述

4 业务闭环

业务闭环是创建,修改,查询,删除的流程。

4.1 修改标签接口

首先,新建接口为“修改标签接口”,在脚本运行之间设置全局变量nowtime_2,用于修改name的值,如下图所示:
在这里插入图片描述
然后,在“获取公众号已创建的标签接口”查看已经创建好的标签接口,将id为104的标签的name值改为广州xxxx,如下图所示:
在这里插入图片描述
最后,修改成功,如下图所示:
在这里插入图片描述
发现问题,修改标签之前需要查询已创建的标签接口的id,很麻烦。
解决办法:可以将创建接口的id值设置为全局变量,以便其他接口访问。

4.2 删除标签接口

新建删除标签接口,在Body填写“创建标签接口”设置的全局变量,如下图所示:
在这里插入图片描述
“创建标签接口”设置的全局变量,如下图所示:
在这里插入图片描述

4.3 实现业务闭环

走一遍完整的闭环,“创建标签接口”,“修改标签接口”,“查询已创建的标签接口”,删除标签接口。
首先,在创建标签接口之前,因为name的值不能重复,所以name的值加入时间戳,如下图所示:
在这里插入图片描述
在Body输入参数,如下图所示:
在这里插入图片描述
在Tests中将创建好的id设置为全局变量,如下图所示:
在这里插入图片描述
然后,修改标签接口,在脚本运行之前,设置nowtime_2全局变量,给修改name的值使用,如下图所示:
在这里插入图片描述
在Body中写传入的参数,如下图所示:
在这里插入图片描述

运行成功,如下图所示:
在这里插入图片描述
此外,来到查询标签接口,查看有没有id为110的标签,成功查询,如下图所示:
在这里插入图片描述
最后,来到删除标签接口,在Body中使用全局变量tag_id,找到110,如下图所示:
在这里插入图片描述
到此,一次完整的业务闭环完成。

5 环境变量与全局变量

环境变量:重点在环境下,切换环境,运行接口。环境变量是在创建接口之前就要创建好的,选择好了环境变量,才进行接口测试。
全局变量:全局变量重点在全局,任何接口都可以使用全局变量。

环境可以有开发环境,测试环境,线上环境。

测试环境参数,如下图所示:
在这里插入图片描述
上线环境参数,如下图所示:
在这里插入图片描述
场景:在查询标签接口上,切换到测试环境,使用在测试环境下的ip参数以及其的值,如下图所示:
在这里插入图片描述
此时,把环境切换为上线环境,则会报错。因为在上线环境的ip参值无效。

6 断言

断言大致上分为状态断言和业务断言。

6.1 在“获取token值”接口做断言

使用状态码是否为200和响应信息中有没有access_token字符串作为断言,如下图所示:
在这里插入图片描述
断言成功,如下图所示:
在这里插入图片描述

6.2 在“创建标签接口”做断言

使用状态码是否为200和name的值是否为广东加上全局变量nowtime作为断言,如下图所示:
在这里插入图片描述

断言成功,如下图所示:
在这里插入图片描述
注意
postman内置的动态参数无法做断言,所以必须使用自定义的动态参数。
在tests中不能使用{{}}方法取全局变量,必须使用以下三种方式:

pm.globals.("golbals_variable")
globals.["golbals_variable"]
globals.golbals_variable

6.3 在“查询已创建的标签接口”做断言

使用状态码是否为200和响应信息中有没有tag字符串作为断言,如下图所示:
在这里插入图片描述
断言成功,如下图所示:
在这里插入图片描述

6.4 在“修改标签接口”做断言

使用状态码是否为200和响应的json格式errmsg的值是否为ok字符串作为断言,如下图所示:
在这里插入图片描述

断言成功,如下图所示:
在这里插入图片描述

6.5 在“删除标签接口”做断言

使用状态码是否为200和响应的json格式errmsg的值是否为ok字符串作为断言,如下图所示:
在这里插入图片描述
断言成功,如下图所示:
在这里插入图片描述

断言小结

在Postman断言中一般都用自带的断言,经常使用的有200状态码断言,返回值字符串有没有包含某一小段字符串,返回值字符串有没有包含某个全局变量,返回值是json格式的中的值是否和预期结果一致。

7 必须带请求头的接口测试如何测试

以抓百度页面的包为例子。
Fiddler抓百度页面的包,Postman填写响应头信息。

7.1 打开本地的代理

找到本机的Internet选项,如下图所示:
在这里插入图片描述
连接->局域网设置->高级,填下图的数据,如下:
在这里插入图片描述

7.2 Fiddler设置

打开Fiddler,Tools->option,HTTPS设置如下图:
,
打开Fiddler,Tools->option,Connections设置如下图:
在这里插入图片描述
Fiddler的Filter设置,如下图:
在这里插入图片描述

打开谷歌浏览器,输入https://www.baidu.com/,观察Fiddler的信息,如下图所示:
在这里插入图片描述

查看第一条信息,复制全部的响应头信息,如下图所示:
在这里插入图片描述

7.2 在Postman输入响应头信息

新建“百度首页接口”请求。

点击下图Bulk Edit,将全部的响应头信息复制到,Headers中,
在这里插入图片描述

点击【Send】按钮,运行结果以Preview显示,如下图所示:
在这里插入图片描述
到此,带百度响应请求头接口测试通过。
不断排除,发现只需要User-Agent参数及其值即可,如下图所示:
在这里插入图片描述

8 Postman+newman+jenkins实现自动生成报告并持续集成

8.1 安装node,npm,newman

node.js官网下载地址如下:

https://nodejs.org/en/

下载16.15.1,如下图所示:
在这里插入图片描述

安装成功,在命令提示符窗口查看node的版本,如下图所示:
在这里插入图片描述

在命令提示符窗口输入npm install npm@6.14.10 -g,版本太高不兼容node,所以选择安装npm版本为6,如下图所示:
在这里插入图片描述
查看npm版本,并检查是否安装成功,成功,如下图所示:
在这里插入图片描述

安装newman,在命令提示符窗口,输入命令npm install -g newman,并且查看版本,如下图所示:
在这里插入图片描述

8.2 将Postman中的用例,环境,全局变量导出

导出用例,如下图所示:
在这里插入图片描述

导出环境,如下图所示:
在这里插入图片描述

导出全局变量,如下图所示:
在这里插入图片描述
导出的用例存放在E盘,名为yongli.json,导出的环境存放在E盘,名为environment.json,导出的环境存放在E盘,名为globals.json,如下图所示:
在这里插入图片描述

8.3 运行并生成html报告

在命令提示符窗口输入newman run "e:\\yongli.json" -e "e:\\environment.json" -g "e:\\globals.json" -r cli,html,json,junit --reporter-html-export "report.html",如下图所示:
在这里插入图片描述
生成的html文件在c:User\DELL路径中,打开report.html,如下图所示:
在这里插入图片描述

8.4 Jenkins持续集成

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

提前是安装好Jenkins和HTML Publisher插件。
下方链接是安装Jenkins和HTML Publisher插件教程

https://blog.csdn.net/qq_45059457/article/details/125641622

新建项目,如下图所示:
在这里插入图片描述
为项目起名,名为newmantest,选择Freestyle project,如下图所示:
在这里插入图片描述

构建,执行window批处理命令newman run "e:\\yongli.json" -e "e:\\environment.json" -g "e:\\globals.json" -r cli,html,json,junit --reporter-html-export "e:\\report.html",如下图所示:
在这里插入图片描述

构建后操作,Publish HTML Reports,如下图所示:
在这里插入图片描述

运行,Build now,如下图所示:
在这里插入图片描述

查看html报告,如下图所示:
在这里插入图片描述

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

软件测试 接口测试 实战 微信公众号平台 Postman+newman+jenkins 实现自动生成报告并持续集成 的相关文章

  • POST 请求在 Postman 中有效,但在 Python 请求中无效(带有机器人检测的 200 响应)

    我有一个 POST 请求 可以与 Postman 和 cURL 完美配合 它返回 JSON blob 数据 然而 当我使用 Python 的 Requests 库执行完全相同的请求时 我得到了 200 成功响应 但我得到的不是 JSON b
  • 使用多分支管道触发詹金斯构建标签创建

    我有一个舞台我的詹金斯文件 https github com ryandawsonuk activiti build blob 5d60df0b0e1410f901c64313d90e7aa03054c1df Jenkinsfile L79
  • Uber API 不允许来自本地主机的请求

    当我使用 Uber API 和 localhost 时 我收到以下错误 请求的资源上不存在 Access Control Allow Origin 标头 起源 http 本地主机 8080 http localhost 8080 因此不允许
  • 如何在 NodeJS 中允许表单数据

    我最近创建了一个接受文件的 API 我正在尝试使用 Postman 测试 API 如果我使用发出帖子请求x wwww form urlencoded身体类型 一切正常 我得到了所有预期的数据 唯一的问题是它不允许发送文件 如果我使用form
  • 解锁 Jenkins - 如何

    我已经使用 putty 从 Windows 系统在我的 ec2 实例上安装了 jenkins 当我尝试通过网络访问 jenkins 时 我使用 var lib jenkins secrets initialAdminPassword 解锁
  • 使用 Jenkins API 促进构建

    给定一个具有不同升级作业的 Jenkins 构建作业 即 将构建升级到不同的环境 如何使用 Jenkins API 触发特定构建的特定升级作业 综合不同来源的答案得出 Username Username APItoken 12345 Cre
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 如何让 Jenkins、Sonar 和 JaCoCo 插件在 Eclipse Tycho 插件项目(或者 Cobertura)中协同工作?

    我的设置是 詹金斯 1 448 声纳2 13 詹金斯声纳插件 1 72 Sonar 的 MySql 数据库 我有以下项目 Eclipse 插件项目 使用Maven 多个模块 父级 Maven 项目 源插件项目 测试片段项目 一个简单的 JU
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 有 JUnit Attachments Jenkins 插件工作的示例吗?

    在过去一个小时左右的时间里 我一直在努力让以下工作正常进行 我将附件存储在目标目录中 但它们在班级级别或测试级别的测试页面上都没有链接 我尝试了以下每种组合 放置附件文件夹target surefire reports class 与目标
  • 如何从 bitbucket 存储库触发 jenkins 管道

    我已成功在 bitbucket 中为 Jenkins 自由式项目设置了一个 Webhook 触发器 用于测试目的 不幸的是 我的 Jenkins 项目使用的是 Pipeline 格式 我无法让 Bitbucket 触发此类项目 问题似乎是没
  • JMeter:来自 Jenkins 的九个以上参数

    我试图将超过九个参数从 Jenkins 传递到 JMeter4 0 当我阅读时 我发现 JMeter 不接受超过 9 个参数 作为解决方法 我想将所有参数作为字符串传递 并在 JMeter BeanShell 中将其拆分 java jar
  • 如何在jenkins中使用文件参数

    我正在詹金斯中执行参数化构建来计数 有 1 个文件参数的文件中的行数 它的文件位置是pqr 脚本文件的名称是linecount sh保存在远程服务器上 当我尝试使用命令执行它时sh linecount sh文件名 它在詹金斯中完美运行 但是
  • Jenkins:有什么方法可以清理 Jenkins 工作区吗?

    如何清理 Jenkins 中的工作区 我在用AccuRev作为版本控制工具 我创建freestyle詹金斯的项目 有一种方法可以清理 Jenkins 中的工作区 您可以在构建之前或构建之后清理工作区 首先 安装工作区清理插件 https w
  • 我如何才能获得 Jenkins 的工作范围凭证?

    首先抱歉 如果这个问题及其解决方案存在于某处 但我找不到它 我希望能够在工作中创建凭证 并且只能在该工作中使用 这是一种工作范围凭证 目前 凭证插件仅建议全局和系统范围 因此凭证可用于所有作业 凭据绑定插件似乎也没有解决我的问题 但公平地说
  • 在全球范围内压制 StyleCop 警告

    如何在解决方案中全局抑制 StyleCop 警告 该解决方案是使用 Jenkins 持续构建和集成工具 持续构建的 并且应用了所有 StyleCop 规则 该解决方案使用 TAB 字符而不是 4 个空格 因为这是我的开发团队采用的标准 因此
  • 如何在多分支管道中为特定分支设置下一个版本号

    我正在尝试以编程方式为我们的发布分支设置下一个版本号 但我遇到了一个问题 以下是我尝试过的两种方法 def job Jenkins instance getItem master job nextBuildNumber env BUILD

随机推荐

  • 使用nginx配置二级域名

    最近想把三个项目配在一个服务器上 于是想使用nginx配置二级域名实现 1 域名添加解析 我的是阿里云的域名 所以首先给自己的域名添加解析 打算使用 www codeliu com test1 codeliu com test2 codel
  • elementUI表格行的点击事件,点击表格,拿到当前行的数据

    1 绑定事件 2 定义事件 3 点击表格某行的时候 拿到数据 转载于 https www cnblogs com wuhefeng p 11316215 html
  • STM32 PID调节输出电压

    一 简介 关于PID调节的这里不做详解 就简单说下 其实就是先设定好一个期望 通过反馈系统返回输出值 然后判断这个输出实际输出的值 和我们的期望值的误差 然后PID算法根据这个误差 去调整我们的输出值 直到输出达到我们的期望值 那么我们为啥
  • 为什么程序员做外包会被瞧不起?

    二哥 有个事想询问下您的意见 您觉得应届生值得去外包吗 公司虽然挺大的 中xx 但待遇感觉挺低 马上要报到 挺纠结的 以上是读者小 K 给我发的私信 除此之外 还有个读者 down 也问我关于外包的事情 担心外包学不到技术 但很不幸的是年前
  • 11种概率分布,你了解几个?

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文转自 视学算法 了解常见的概率分布十分必要 它是概率统计的基石 这是昨天推送的 从概率统计到深度学习 四大技术路线图谱 都在这里 文章中的第一大技术路线图谱如下所示
  • 【mega-nerf】调包失败&pip install失败解决方案

    Problem 1 调包失败 在这样的层级架构里调包 输出无法找到 mega nerf 直接用 sys path append 没有作用 import sys print sys path sys path append home pape
  • Java实现Excel文件生成和下载功能

    7 行代码优雅地实现 Excel 文件生成 下载功能 欢迎关注博主公众号 小哈学Java 专注于分享Java领域干货文章 关注回复 资源 免费领取全网最热的Java架构师学习PDF 转载请注明出处 https www exception s
  • stm32F103C8T6控制DHT11

    stm32F103C8T6控制DHT11串口打印 stm32F103C8T6控制DHT11串口打印学习经验总结 本人借鉴了许多大佬们的资料 这是个人学习的见解 如发现错误之处 麻烦指导指导 借鉴链接 https blog csdn net
  • 移动端-表头固定的表格组件

    UI原型 HTML代码 div class scroll table box div class scroll table head table class tb1 thead tr th style width 3em 序号 th th
  • Java二维码登录流程实现(包含短地址生成,含部分代码)

    近年来 二维码的使用越来越风生水起 笔者最近手头也遇到了一个需要使用二维码扫码登录网站的活 所以研究了一下这一套机制 并用代码实现了整个流程 接下来就和大家聊聊二维码登录及的那些事儿 二维码原理 二维码是微信搞起来的 当年微信扫码二维码登录
  • Web前端页面由哪三大层构成

    结构层为页面的骨架 由 HTML 或 XHTML 标记语言创建 用于搭建文档的结构 HTML 用来定义网页的内容 例如标题 正文 图像等 表示层为页面的样式 由 CSS 层叠样式表 负责创建 用于设置文档的呈现效果 CSS 用来控制网页的外
  • elk笔记10--filebeat使用

    elk笔记10 filebeat使用 1 filebeat 介绍 2 filebeat 使用案例 2 1 软件安装 2 2 采集数据到 kafka 2 3 采集数据到 es 3 使用技巧 3 1 filebeat 将日志按照类别发送到不同
  • git切换分支--Your local changes to the following files would be overwritten by checkout

    翻车现场 checkout切换分支报错 error Your Local changes to the following files would be overwritten by checkout xxxxxx某某文件 Please c
  • 联想笔记本e480恢复出厂设置_联想e480进入bios设置_thinkpade480进入bios的方法

    ThinkPad E480笔记本win10改win7如何修改BIOS设置 想要将预装win10系统换成win7系统 最重要的一步就是修改bios设置 这样才能在装机过程中不受到报错困扰 所以今天快启动小编为大家分享了详细图文教程 一起来看看
  • DICOM笔记-使用DCMTK读取DICOM文件保存DICOM文件

    记录之前写过一个读取DICOM文件 修改对应Tag标签内容后 保存为新的DICOM文件的例子 其中的对DICOM信息处理的过程为 将DICOM中的一系列连续DICOM图像 处理后生成一张多帧的DICOM文件 主要步骤为 1 读取DICOM文
  • [keil] uv编译分析

    假设Keil安装路径 C Keil v5 假设工程在 d HELLO 工程Targets名 Simulator 在Manage Project Items中可修改 如下指令为 Build F7 C Keil v5 UV4 UV4 exe b
  • java导出excel工具类(贼好用)

    项目中自用的导出excel工具 实体类 package com mapuni survey entity public class ExcelEntity private String field private String title
  • AI芯片产业生态及竞争格局:英伟达、谷歌、BAT实力拆解对比

    深度学习不仅在传统的语音识别 图像识别 搜索 推荐引擎 计算广告等领域证明了其划时代的价值 也引爆了整个人工智能生态向更大的领域延伸 由于深度学习的训练 training 和推断 inference 均需要大量的计算 人工智能界正在面临前所
  • 前后端分离第一课--创建app与model在数据库中执行

    一 创建APP 在Terminal里面输入 python manage py startapp student 如果在根目录里面创建的app多了 目录可能就会很乱 这个时候 就可以在django项目下新建一个Python Package 命
  • 软件测试 接口测试 实战 微信公众号平台 Postman+newman+jenkins 实现自动生成报告并持续集成

    文章目录 1 创建请求 1 1 获得appid和secret 1 2 获取token值 1 3 获取公众号已创建的标签接口 1 4 创建标签接口 2 接口关联 2 1 使用json提取器 提取access token的值 2 2 使用正则提