Runner

使用 Postman 做 API 自动化测试

泪湿孤枕 提交于 2020-08-13 23:30:02
Postman 最基本的功能用来重放请求,并且配合良好的 response 格式化工具。 高级点的用法可以使用 Postman 生成各个语言的脚本,还可以抓包,认证,传输文件。 仅仅做到这些还不能够满足一个系统的开发,或者说过于琐碎,你仍需要频繁地在开发环境,测试环境,生产环境中来回切换。单一的请求也不够,你需要维护系统所有 API 的请求,并且每个请求还带有不同的 querystring 和 body。 Collection 对服务器端的所有请求按功能或者业务模块进行组织,使用 markdown 对所有请求和示例添加适当的描述,这时候就用到了 Collection。以下是 postman 的一些术语以及组织请求的建议。 Collection 对应一个Application,组内各个成员(server, client, QA)共享一个 Collection。可以对整个Collection 添加测试,文档。 对于一开始未在 postman 组织请求的应用,可以设置 Proxy,跑一遍应用,对应用的所有请求进行抓包。 Folder (ItemGroup) 对应一个模块,或者各层级子路由。如 router.use('/users') 所有的请求都在一个 Folder,可以根据路由互相嵌套 Folder。 Request (Item) 对应一个请求,可以添加认证信息。也可以设置代理

Flutter性能优化实践 —— UI篇

白昼怎懂夜的黑 提交于 2020-08-13 23:07:00
原作者:唯鹿 来源:掘金 1.前言 flutter_deer这个项目开源也近一年了,目前收获了3100+的star,这无疑是对这个项目的最大认可。虽然从功能和UI看来和一年前的没什么区别。不过这期间我不断在优化它,希望它的性能和体验越来越好。这篇集中整理了deer在UI流畅上的优化细节,以实践为主,源码为辅。分享出来,希望对你有所启发和帮助。 既然要优化,那么首先就要掌握定位问题、分析性能问题的方法,这样才可以对比优化前后的效果。具体方法这里我就不详细介绍了,可以参考官方文档,或是看这个视频:Flutter 的性能测试和理论。 在官方文档中,性能分析需要确保 使用真机并在profile模式下运行 。不过我们可以使用debug模式来寻找卡顿,因为我觉得它可以放大你的“问题”。 下面正式进入正题。(为了显得口语化一点,我会将Flutter的构建(build)用“刷新”表示。本篇源码基于Flutter SDK版本 1.17.0) 2.控制刷新范围 我们使用setState方法就可以轻松刷新页面,但是要尽力控制刷新范围。我举一个例子: 在注册账户时,通常需要获取验证码。这时会有一个倒计时功能,那么我们就需要每隔一秒刷新一下这个倒计时数字并显示出来。 如果这个倒计时的逻辑处理你放在了注册页面,那么每当setState时都是一整个页面的刷新。而这整页刷新显然是不必要的。而它并不会让你感知到卡顿

教培行业工程师面临着什么挑战?研发面板全栈式解决工程师的痛点

让人想犯罪 __ 提交于 2020-08-13 12:13:08
“攻城狮”之痛 痛一:最“可爱”的产品经理,这些人一天到晚提需求,而且毫无愧意改来改去。 每一个需求背后都是一大串的代码,每一次需求的变更,意味着相对应的每一个环节都要变更,而这些,都是“攻城狮”一个一个代码敲上去的。所谓杀掉一个“攻城狮”,不用枪、刀、剑、斧,多提需求以及需求变更就够,大概就是这样子的吧。 产品经理们,摸过你们长在左心房的良心吗?而且,说好的下午茶、大餐呢? 痛二:最“要命”的老板,这些人老是有这周想到下周就要的系统。 996已经司空见惯,跟谁学更是提倡“996变为007”,鼓励员工尽量住在公司,所谓“不畏加班不念下班”,虽然不确定真假,但这个应该是每一个老板的内心想法。项目工作量需要30人/天,老板要求10人/天,这就是现实! 老板们,你有考虑过我们“攻城狮”所剩无几的头发兄弟的感受吗?你有想过我们“攻城狮”也想有时间去大学城找女朋友吗? 痛三:最费头发的事儿——修Bug,这些“兄弟”最讨人烦,但无奈它天天光顾。 在公司/机构里,老师绝对是最受宠的那类人,天天都有人围着。 我们这些“攻城狮”则天天围着Bug,当真是一个Bug一时爽,一打Bug头发光。如果是自己写的代码倒还好,最坑的是公司/机构里有N多不知道哪儿来的“系统”,甚至还没有说明文档。 痛四:最憋屈的事儿——修复“罢工”系统,这些家伙不来则已,一来惊天动地。 每年招生高峰期,大大小小的活动肯定是少不了

Java是如何实现Future模式的?万字详解!

对着背影说爱祢 提交于 2020-08-13 07:21:53
JDK1.8源码分析项目(中文注释)Github地址: https://github.com/yuanmabiji/jdk1.8-sourcecode-blogs 1 Future是什么? 先举个例子,我们平时网购买东西,下单后会生成一个订单号,然后商家会根据这个订单号发货,发货后又有一个快递单号,然后快递公司就会根据这个快递单号将网购东西快递给我们。在这一过程中,这一系列的单号都是我们收货的重要凭证。 因此,JDK的Future就类似于我们网购买东西的单号,当我们执行某一耗时的任务时,我们可以另起一个线程异步去执行这个耗时的任务,同时我们可以干点其他事情。当事情干完后我们再根据future这个"单号"去提取耗时任务的执行结果即可。因此Future也是多线程中的一种应用模式。 扩展 : 说起多线程,那么Future又与Thread有什么区别呢?最重要的区别就是Thread是没有返回结果的,而Future模式是有返回结果的。 2 如何使用Future 前面搞明白了什么是Future,下面我们再来举个简单的例子看看如何使用Future。 假如现在我们要打火锅,首先我们要准备两样东西:把水烧开和准备食材。因为烧开水是一个比较漫长的过程(相当于耗时的业务逻辑),因此我们可以一边烧开水(相当于另起一个线程),一边准备火锅食材(主线程),等两者都准备好了我们就可以开始打火锅了。 //

API测试之Postman使用全指南(原来使用 Postman测试API如此简单)

我是研究僧i 提交于 2020-08-12 03:55:08
Postman postman接口测试–URL Parameter数据驱动参数化 Postman是一个可扩展的API开发和测试协同平台工具,可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。 Postman 工具有 Chrome 扩展和独立客户端,推荐安装独立客户端。 Postman 有个 workspace 的概念,workspace 分 personal 和 team 类型。Personal workspace 只能自己查看的 API,Team workspace 可添加成员和设置成员权限,成员之间可共同管理 API。 当然我个人使用一般是不登录的,因为登录之后会自动将你的测试历史数据保存到账户里,你可以登陆网页端进行查看。 因为API的很多数据是很敏感的,有的含有Token,或者就是一些私密信息,虽然Postman自己也强调说这样很安全,不会私下窥探用户的信息之类的,但是呢还是至少做一点有效的防范吧,自己不上传,因为网络并没有绝对的安全。 所以我每次测试之后会将数据(Case)保存在本地,下次使用或者换设备的情况下将数据拷贝过来又可以继续使用了。 下面正式开始介绍如何使用Postman吧。 为什么选择Postman? 如今,Postman的开发者已超过1000万(来自官网),选择使用Postman的原因如下: 简单易用 - 要使用Postman

CI 自动化部署 方案gitlab-runner

核能气质少年 提交于 2020-08-12 00:15:57
现在大多数公司都很多项目需要自动部署 到多台服务器 代码检查等工作 ,为了提供工作效率往往需要我们的ci就闪亮登场了 今天说一下我所采用的 gitlab-runner 提供的方案 ,感觉这个比较实用而且基本上很多公司也在用gitlab环境 ,应该也很方便部署 减少了再引进其他软件平台所带来的不便,废话不多说 直接进入主题 如何操作使用: 1.找到一个适合自己gitlib 版本的 gitlib-runner 下载 rpm包 2.安装对应的包 rpm -ivh 3.gitlab-runner register 输入你的gitlab地址 4.去gitlab上找到 对应授权的 串码 5.起一下名字 和 标签 和执行方式 6.然后 在你的gitlab上就会出现对应的 一个新的记录 表明你的gitlab已经和对应的服务器进行通讯了(创建的分享类型可以是共享的还有 私有的 或者标注标签的 根据自己的工作需求自己设定) 7.在项目中创建 .gitlab-ci.yml 这个文件中写入你项目要自动执行的内容 比如说PHP可以进行拉代码 同步代码 开启服务等任务。当然现在的大前端趋势下也有很多 任务可以做 代码服务器端 的npm构建 代码的自动检查 等都可以在此文件中进行执行。 具体详情可以参考 https://github.com/Fennay/gitlab-ci-cn 官网中的介绍

spring整合Junit问题

二次信任 提交于 2020-08-11 10:05:19
spring整合Junit问题 在学习spring的过程中,看到测试类中加了一个注解 就是这个@Runwith(SpringJUnit4ClassRunner.class)注解 那么就来引入一个实际的问题 在编写测试类的时候,每个测试方法都要去获取容器和得到业务层对象 那么必然造成代码的耦合,所以我们很自然的想到把这一部分代码抽取出来 private ApplicationContext applicationContext ; private AccountService accountService ; @Before public void init ( ) { //1.获取容器 applicationContext = new AnnotationConfigApplicationContext ( SpringConfiguration . class ) ; //2.得到业务层对象 accountService = applicationContext . getBean ( "accountService" , AccountService . class ) ; } 也就是说@Before注释 在Test方法执行前 我们都要先去执行init方法完成获取容器和业务层对象,从而解决我们的问题,但是还有一点我们需要思考,如果软件的开发和测试是分离的话

Python+selenium+unittest+HTMLTestReportCN单元测试框架分享

风流意气都作罢 提交于 2020-08-11 07:17:09
分享一个比较基础的,系统性的知识点。Python+selenium+unittest+HTMLTestReportCN单元测试框架分享 Unittest简介 unittest是Python语言的单元测试框架,在Python的官方文档中,对unittest单元测试框架进行了详细的介绍,感兴趣的读者可以到 https://www.python.org/doc/网站了解。本章重点介绍unittest单元测试框架在自动化测试中的应用。unittest 单元测试框架提供了创建测试用例、测试套件和批量执行测试用例的方案。 在python 安装成功后,unittest 单元测试框架就可以直接导入使用,它属于标准库。作为单元测试的框架,unittest 单元测试框架也是对程序的最小模块进行的一种敏捷化测试。在自动化测试中,我们虽然不需要做白盒测试,但是必须知道所使用语言的单元测试框架,这是因为当我们把Selenium2的API全部学习完后,就会遇到用例的组织问题。 虽然函数式编程和面向对象编程提供了对代码的重构,但是对于所编写的每个测试用例,不可能编写成一个函数(方法)来调用执行。利用单元测试框架,可以创建一个类,该类继承unittest 的TestCase,这样可以把每个TestCase 看成是一个最小的单元,由测试套件组织起来,运行时直接执行即可

PHP laravel artisan 常用命令

牧云@^-^@ 提交于 2020-08-10 21:06:31
# 配置 composer 镜像 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ # 安装 laravel 并创建项目 composer -vvv create-project --prefer-dist laravel/laravel runner-backend cd runner-backend # 配置数据库 过程略 nano .env # 安装 laravel-admin composer -vvv require encore/laravel-admin # 发布资源 php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider" # 插入数据表并安装 App 文件 php artisan admin:install # 重置密码 artisan admin:reset-password # 创建用户 artisan admin:create-user # 创建数据表补丁 php artisan make:migration add_some_fields_to_users_table --table=users # 创建数据表 php artisan make

python+requests接口自动化测试实战

半城伤御伤魂 提交于 2020-08-10 18:24:07
python+request+unittest+HTMLTestRunner 首先介绍一下python的requests模块: requests的使用介绍:requests快速入门 环境说明: 1.WIN 7, 64位 2.Python3.4.3 (pip-8.1.2) 3.Requests —>pip install requests 4.Unittest —>unittest 框架是python自带的单元测试框架,python2.1及其以后的版本已将unittest作为一个标准块放入python开发包中,所以unittest不用单独安装。 5.测试报告利用HTMLTestRunner生成。 测试思路: 1、先把每个http接口一个一个写脚本测试。(提交的json串直接放在data字典中,这里没有用到excel等写测试用例,测试用例直接用脚本实现。) 2、写完所有接口的测试脚本后,由于一个接口有好几个测试用例,所有要把同一个接口的py脚本封装成方法,每一个接口封装成一个接口类。 3、用testsuite直接调用这些接口类,构造测试集;或利用unittest自动识别测试用例,TestLoader类中提供的discover()方法。 (命名规则:接口名称要以test_XXX开头) 就好把所有的接口测试用例连起来构建自动化测试了。 4、最后利用HTMLTestRunner生成测试报告。