测试
文章平均质量分 86
阿星君
因为热爱
展开
-
测试架构师如何解读测试平台的各种争议
导读先从 最近几天群里关于测试平台的话题谈起,再来谈谈接口测试的痛点是什么,然后是我的接口测试的解决方案。希望通过本篇的论述,大家对什么是好的平台能达成统一的认识,且通过创新做出好用,对测试人友好的平台。有需要的可以加群323432957。最近 群里面,关于测试平台的讨论很激烈。我本人是支持平台的,但是现在好多平台都是 KPI 导向,拿接口测试平台来说,除了少数做得不错之外,看到好多不是 demo ,就是 jmeter ,postman 的 web 化,不否认做平台,对技术多少还是有提升 (大多数是原创 2021-07-08 15:23:36 · 288 阅读 · 1 评论 -
GRPC协议 Mock Server服务
PowerMock是一个Mock Server的实现,它同时支持HTTP与gRPC协议接口的Mock,并提供了灵活的插件功能。 这个工具面向于前后端、测试等对有接口Mock需求的开发人员,也可以作为一个通用的Mock服务,部署在网关架构或API管理平台中,实现降级、接口Mock等功能。功能作为一个Mock Server,PowerMock具有以下的核心功能:支持HTTP协议与gRPC协议接口的Mock。 支持配置Javascript等脚本语言来动态生成响应。 支持对一个接口配置多...原创 2021-07-07 14:54:03 · 371 阅读 · 4 评论 -
React 单元测试策略及落地 #一篇就够系列
写好的单元测试,对开发速度、项目维护有莫大的帮助。前端的测试工具一直推陈出新,而测试的核心、原则却少有变化。与产品代码一并交付可靠的测试代码,是每个专业开发者应该不断靠近的一个理想之地。本文就围绕测试讲讲,为什么我们要做测试,什么是好的测试和原则,以及如何在一个 React 项目中落地这些测试策略。本文使用的测试框架、断言工具是 jest。文章不打算对测试框架、语法本身做过多介绍,因为已有很多文章。本文假定读者已有一定基础,至少熟悉语法,但并不假设读者写过单元测试。在介绍什么是好的单元测试时,我会简单原创 2021-07-01 16:43:37 · 473 阅读 · 1 评论 -
Playwright快速上手指南
Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作。作为针对 Python 语言纯自动化的工具,在回归测试中可更快的实现自动化。1. 为什么选择Playwright1.1 Playwright的优势(1) Selenium需要通过WebDriver操作浏览器;Playwright通过开发者工具与浏览器交互,安装简洁,不需要安装各种Driver。原创 2021-06-30 17:21:01 · 931 阅读 · 1 评论 -
单元测试利器Mockito框架
读 8658前言Mockito是当前最流行的单元测试Mock框架。采用Mock框架,我们可以虚拟出一个外部依赖,降低测试组件之间的耦合度,只注重代码的流程与结果,真正地实现测试目的。正文什么是MockMock的中文译为仿制的,模拟的,虚假的。对于测试框架来说,即构造出一个模拟/虚假的对象,使我们的测试能顺利进行下去。Mock测试就是在测试过程中,对于某些不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或...原创 2021-06-30 17:15:45 · 168 阅读 · 1 评论 -
python+appium+pytest自动化测试-跳过测试与预期失败的测试
在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行恢复操作。一、跳过测试类该方法用于需要跳过的测试类,在测试类前面添加装饰器:@pytest.mark.skip()。1.skip():被标记的类中所有方法测试用例都会被跳过import pytest@pytest.mark.skip()class TestPhoneLogin: def test_err原创 2021-06-30 17:09:44 · 319 阅读 · 0 评论 -
写好测试,提升应用质量
一、 测试的重要性测试很重要!测试很重要!测试很重要!重要的事情说三遍。场景1:每次我们写完代码后都需要编译运行,以查看应用程序的表现是否符合预期。假如改动点、代码量小,那验证成本低一些,假如不符合预期,则说明我们的代码有问,人工去排查问题花费的时间也少一些。假如改动点很多、受影响的地方较多,我们首先要大概猜测受影响的功能,然后去定位问题、排查问题的成本就很高。场景2:你新接手的 SDK 某个子功能需要做一次技术重构。但是你只有在公司内部的代码托管平台上可以看到一些 Readme、接入文档、系统原创 2021-06-30 16:56:20 · 249 阅读 · 1 评论 -
面向测试编程--代码的可测性
背景这是之前参加的一个工程师交流会上别人分享的一个小议题,做了一些笔记,后面整理资料的时候又从网上搜集了一些做补充,今天分享一下代码的可测性测试性不好的代码特征缺陷1: 构造函数做了实际工作构造函数或域声明中出现new字眼 构造函数或域声明中调用静态方法 构造函数做了分配域字段之外的事情 构造函数中,对象初始化工作没有完成彻底(小心初始化方法) 构造函数中,出现了控制流(基于条件或循环的逻辑) 在构造函数内构造复杂的对象图,而不是使用工厂(factory)模式或构造器(buil原创 2021-06-29 16:58:01 · 417 阅读 · 0 评论 -
分布式性能测试框架用例方案设想(二)
书接上文分布式性能测试框架用例方案设想(一),方案二进行更加复杂的测试用例,以jar包类方法形式的用例进行测试,下期会基于docker进行技术验证。Part1基于jar包类方法的压测场景性能测试脚本基于FunTester性能测试框架,今天分享提前将用例写好,暴露部分参数的用例。这类性能测试用例的测试场景已经提前设定,参数化目前都只是在测试线程数,软启动时间,终止条件等做了区分等等。这类用例的修改增添都需要重新部署服务,所以比较适合稳定用例,比如基准性能测试用例这些,可用于性能巡检、定期性能回归.原创 2021-06-25 14:28:36 · 131 阅读 · 0 评论 -
分布式性能测试框架用例方案设想(一)
目前看已经有了几种粗略的性能测试用例方案,有一些已经进行了实践,有一些已经被我放弃了。分享出来,算是个梳理。这里的测试用例方案分为两类:「用例传递」和「用例执行」。目前我的想法还是通过「HTTP」协议接口完成用例的传递和执行中控制。采用定时任务或者脚本轮询的方式进行执行的控制。目前来看肯定是一个Springboot项目了,这都是后话了。下面分享第一种设想:基于HttpRequestBase对象的压测场景这种测试场景应该说非常少了,基于单个或者多个固定的HttpRequestBase对象的分布原创 2021-06-25 14:23:04 · 297 阅读 · 1 评论 -
使用 Fiddler 进行小程序抓包
为什么是 Fiddler?理由很简单:因为大多数测试同学都是用 Fiddler。虽然不同的抓包工具功能都大同小异,但就像开发者统一开发工具能够提高团队协作的效率一样,开发和测试之间统一工具也能提高大家的沟通效率。如果测试同学在使用 Fiddler 抓包时遇到了什么问题,比如说某个请求抓不到,你给的答复却是:我用 whistle/charles 没问题啊,这肯定会让测试同学抓狂。前置准备下载 Fiddler Everywhere下载地址:www.telerik.com/download/fi…原创 2021-06-25 14:15:47 · 15605 阅读 · 2 评论 -
Spring Boot 的单元测试和集成测试
学习如何使用本教程中提供的工具,并在 Spring Boot 环境中编写单元测试和集成测试。1. 概览本文中,我们将了解如何编写单元测试并将其集成在Spring Boot环境中。你可在网上找到大量关于这个主题的教程,但很难在一个页面中找到你需要的所有信息。我经常注意到初级开发人员混淆了单元测试和集成测试的概念,特别是在谈到 Spring 生态系统时。我将尝试讲清楚不同注解在不同上下文中的用法。2. 单元测试 vs. 集成测试维基百科是这么说单元测试的:在计算机编程中,单元测试是...原创 2021-06-25 13:55:34 · 899 阅读 · 1 评论 -
什么是单元测试,如何去写一个单元测试
相信单元测试是属于那种没有用过也听过的技术(如果你是大佬,听过也用过,欢迎提出宝贵的意见????♀️????♂️)。那么到底什么是单元测试,单元测试在实际项目开发中能给我们带来什么样的好处?我们站在前端开发的角度一起来聊一聊单元测试。????(一)什么是单元测试????单元测试概念单元测试是指对软件中最小可测单元进行检查和验证;c语言中单元指一个函数,java中指一个类。图形化软件中可以指一个窗口或者一个菜单。总的来说,单元就是认为规定最小的被测试模块。这个便是对百度百科上对单元测试原创 2021-06-25 13:49:32 · 9164 阅读 · 3 评论 -
熟练使用 Elastic Job系列之作业分片策略(五)
自带的分片策略框架默认提供了三种分片策略,所有的分片策略都是接口JobShardingStrategy的实现AverageAllocationJobShardingStrategy全类路径:io.elasticjob.lite.api.strategy.impl.AverageAllocationJobShardingStrategy策略说明:基于平均分配算法的分片策略,也是默认的分片策略。 如果分片不能整除,则不能整除的多余分片将依次追加到序号小的服务器。如: 如果有3台服..转载 2021-06-24 14:25:15 · 1171 阅读 · 1 评论 -
熟练使用 Elastic Job系列之运维平台搭建与使用(四)
运维平台功能介绍登录安全控制 注册中心、事件追踪数据源管理 快捷修改作业设置 作业和服务器维度状态查看 操作作业禁用、启用、停止和删除等生命周期 事件追踪查询准备工作通过之前的入门Demo已经掌握了Elastic Job的使用方法,但是在实际使用过程中是不可能实时通过查看日志来观察作业是否执行成功的。为了解决这个情况,Elastic Job提供了页面管理控制台。接下来将介绍如何安装与使用Job运维平台。首先先把Elastic Job的源码shardingsphere-elasti转载 2021-06-24 14:22:33 · 477 阅读 · 1 评论 -
熟练使用 Elastic Job系列之入门Demo(三)
Elastic-Job-Lite和Elastic-Job-Cloud提供统一作业接口,开发者仅需作业接口做自己的实现,再进行不同的配置以及部署即可完成一个分布式的Job。Java配置启动首先引入maven依赖<dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId> <version&转载 2021-06-24 14:20:14 · 404 阅读 · 0 评论 -
GitLab CI + Docker 持续集成操作手册
概述在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后在项目即将结束进行时,而这往往会花费大量的时间和精力。而持续集成是一种将集成阶段放在软件开发阶段的做法,以便更加有规律地构建,测试和集成代码。“持续集成并不能消除 Bug,而是让它们非常容易发现和改正。”持续集成可以在开发人员提交了新代码后,立刻进行构建、单元测试。从而我们可以根据测试结果以确定新的代码或者环境配置与原来的以及其他开发人员的代码或者环境配置能否正确地集成在一起。GitLab CI 就已经集成在 GitLab 中原创 2021-06-24 14:14:04 · 376 阅读 · 0 评论 -
centos7 如何安装与使用 Anaconda
Anaconda介绍Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。Anaconda 是跨平台的,有 Windows、MacOS、Linux 版本。CentOS 7安装Anaconda3 执行下面的命令将执行脚本获取到本地(文.原创 2021-06-24 14:08:59 · 2365 阅读 · 0 评论 -
Redis中五大数据类型的骚操作①--Redis实战(一)|Java 开发实战
一、概述Redis是什么?what?Redis(Remote Dictionary Server ),即远程字典服务 ! 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 免费和开源!是当下最热门的 NoSQL 技术之一!也被人们称之为结构化数据库!Redis能干嘛?1、...原创 2021-06-24 14:01:42 · 117 阅读 · 0 评论 -
关于java常量的踩坑总结
1、背景在我的日常工作中,时隔几日就会进行一次发版,来解决生产环境遇到的各种bug和优化,但是由于一些日积月累的原因,更新某些项目时,不可以对jar包进行整包替换,通常都是以包内的class单个替换,尽量让这套年迈的系统能够多挺些时日,但是在一次发版过程中,遇到了一点点小问题,我们只修改了常量类,所以当时只更新了这一个类,在测试过程中发现修改内容未生效,经过一番排查后发现是因为常量实用不当引发的问题,下面就针对这次踩坑的经历,讲一下java中的常量以及避坑的措施。2、什么是常量常量是指在整个操作原创 2021-06-24 13:38:39 · 216 阅读 · 0 评论 -
自己动手实现抖音高清无水印视频下载工具(5)
前情回顾书接上回,在前几期中我们已经成功取到了除_signature以外的所有参数,从本文开始分析_signature参数的作用及获取逻辑。参数含义通过字面意思可以确定_signature参数是接口调用的签名,用来验证接口访问来源的合法性。_signature参数来源及分析首先我们还是从调试工具中进行源代码搜索进行分析;通过搜索 我们发现 _signature是在index.98ac6f5d.js文件1289行进行赋值的。我们顺着data['_signature'] = s.原创 2021-06-23 14:56:32 · 627 阅读 · 0 评论 -
自己动手实现抖音高清无水印视频下载工具(3)
前情回顾书接上回,上次我们在调试过程中,成功拿到了sec_uid,但是无法成功访问接口,提示了错误内容:{"status_code":1,"status_msg":"Url doesn't match"}凭借经验分析后,基本可以确定导致以上问题的原因基就是接口可能做了反爬校验,直接校验了user-Agent等参数来判定是否是模拟访问,那么今天我们换个思路,我们尝试使用浏览器内核驱动去调用接口,看看能否成功。Selenium介绍Selenium是什么Selenium是一个用于Web应用程.原创 2021-06-23 14:40:53 · 1033 阅读 · 1 评论 -
自己动手实现抖音高清无水印视频下载工具(2)
书接上文,我们继续对上回说到的问题继续分析,本文目标针对url中的sec_uid参数进行分析。1、sec_uid思路及实现调用接口是通过xhr异步调用的,那么一定会有前台js代码来生成或者通过其他接口来获取这个参数,那么我们可以在浏览器端先搜一下这个参数名称,看看都再哪里出现过,然后跟一下调用链,希望最终能找到源头。首先,我们搜一下前端的代码,发现sec_uid只再一个名称为index.98ac6f5d.js文件中出现了几次,先挨个扫一眼,我们发现在1425和1474行的地方分别出现了以下2原创 2021-06-23 14:34:42 · 993 阅读 · 0 评论 -
自己动手实现抖音高清无水印视频下载工具(1)
1、背景在平时闲暇时间中,我们会经常刷刷dy来消遣或者吸取一些“营养”,但是我们发现在我们保存视频的时候,都会被加上水印和结尾,也会在不同程度上影响我们的体验,所以我在一些技术社区找过一些下载DY高清视频的一些工具,有的还是收费的,做为一名程序员必须要动手搞一搞,于是就有了这个系列文章的诞生。2、分析过程2.1 准备工作首先我们打开某app,进入某博主的首页,然后点右上角的分享。然后我们点分享主页,分享到自己的微信后,可以拿到主页的访问地址通过Chrome浏览器打开后,可..原创 2021-06-23 14:28:09 · 6620 阅读 · 1 评论 -
【redis前传】自己手写一个LRU策略 | 抓住时间的尾巴
一、题目描述运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用) 缓存机制 。 实现LRUCache类:LRUCache(int capacity)以正整数作为容量 capacity 初始化LRU缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数...原创 2021-06-23 13:56:00 · 185 阅读 · 0 评论 -
一文带你读懂 HTTPD 服务的访问控制!
为了更好的控制对网站资源的访问,可以为特定网站目录添加访问授权,本篇文章将给大家介绍 HTTPD 服务的访问控制,主要针对:基于客户端地址限制、基于用户进行限制、基于域名的虚拟主机限制、基于 IP 地址、端口的虚拟主机限制。一、基于客户端地址限制Deny from 和 Allow from 配置项用于设置具体限制内容,使用 Deny from 和 Allow from 配置项时,需设置客户端地址等来进行限制策略,address1 / 2 可以是 IP 地址、网络地址、主机名和域名,通常情况下,网站服原创 2021-06-23 13:51:39 · 1374 阅读 · 0 评论 -
《蹲坑也能进大厂》多线程系列-Java内存模型精讲
本章主要是分析一下大家非常面熟的Java内存模型,用代码的方式介绍重排序、可见性以及线程之间通信等原理,大家看完本篇必定有更加清楚的认识和理解正文我:书接上文,狗剩子你给大伙讲讲什么是volatile?上来就搞这么刺激的吗,你让咱家想想...我:ok,小辣鸡,那我换个问题,你了解过Java内存模型吗?这个不是三伏天喝冰水,正中下怀么。Java内存模型(Java Memory Model)简称JMM,首先要知道它是一组规范,是一组多线程访问Java内存的规范。我们...原创 2021-06-23 13:36:12 · 108 阅读 · 0 评论 -
《蹲坑也能进大厂》多线程系列-volatile、happens-before、三级缓存
本章结束就要结束Java内存模型的讲解了,虽说结束,但是后面会一直贯穿在各个知识点中,多线程比较基础的知识点讲解的差不多了,本文正式引入了对volatile的分析,接下来的几章也会对线程池、CAS、ThreadLocal、原子类、AQS、并发集合等逐步讲解,看完这一系列,谁还能与你争锋(依旧狗头护体)。啪啪啪...看我如何打脸正文我:狗儿,你昨天提及了主内存和工作内存,上次介绍有点太糙了,今天可以再仔细说一下嘛好的呀,我都依你。说到JMM主内存和工作内存,我们就必须要先了解一下CPU原创 2021-06-22 15:12:10 · 324 阅读 · 0 评论 -
《蹲坑也能进大厂》多线程系列-synchronized深入原理终结篇
前言本节主要讲解以下几个内容:synchronized有哪些特性? synchronized的实现原理? synchronized的作用? synchronized的缺陷?正文synchronized有哪些性质?可重入性定义:可重入是指同一个线程当外层函数获取到锁时,内层函数可以直接再次获取该锁。看不懂没关系,我们先来看一个例子。前一篇文章我们说过一妻多夫的生活案例(没有看过的小伙伴建议先看前一篇),小伙伴们想一下,假设兄弟四人中老大先拿到这块砖(锁),那么他当天...原创 2021-06-22 14:57:15 · 86 阅读 · 0 评论 -
AtomicInteger使用方式及源码介绍
前言AtomicInteger是java.util.concurrent.atomic 包下的一个原子类,该包下还有AtomicBoolean, AtomicLong,AtomicLongArray, AtomicReference等原子类,主要用于在高并发环境下,保证线程安全。正文1. 使用场景我们都知道,a++ 这个操作在多线程并发执行的情况下,是非线程安全的。并且由于a++过程包含三个步骤,即非原子性,所以即使使用volatile也不能保证线程安全;而加锁(如Synchronize原创 2021-06-22 14:37:52 · 612 阅读 · 0 评论 -
一个小时肝了一周的需求,看我如何使用EasyCode完成封神
前言你想要一小时搞定一周的需求吗?你想要每天可以开心划水、按时下班吗?有了它,再也不用搬砖写注释重复搬砖搬到头大了。EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件, 主要通过自定义模板(基于velocity)来生成各种你想要的代码。 通常用于生成Entity、Dao、Service、Controller。如果你动手能力 强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与 数据有关的代码都是可以生成的。可以不用敲一句代码,就可以完成这种原创 2021-06-22 14:35:02 · 482 阅读 · 0 评论 -
京喜前端自动化测试之路
前言京喜(原京东拼购)项目,作为京东战略级业务,拥有千万级别的流量入口。为了保障线上业务的稳定运行,每月例行开展前端容灾演习,主要包含小程序及 H5 版本,要求各页面各模块在异常情况下进行适当的降级处理,不能出现空窗、样式错乱、不合理的错误提示等体验问题。 原来的容灾演习过程:小程序(通信方式改成 Https )和 H5 通过 Whistle 对接口返回进行修改来模拟异常情况,验证各页面各模块的降级处理符合预期。容灾演习是一项长期持续的工作,且涉及页面功能及场景多,人工的切换场景模拟异常导致演习效.原创 2021-06-22 13:55:42 · 226 阅读 · 0 评论 -
20张图带你了解JVM运行时数据区(上)
我们的JVM系列已经断更好几天了,小伙伴们在后台疯狂私信阿Q,想看后续内容,今天它来了。相信大家在上篇文章中已经对类加载子系统有了清晰的认识,接下来就让我们来揭开“运行时数据区”的神秘面纱吧。运行时数据区总览内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。下图就是HotSpot的经典的内存布局:图中的..原创 2021-06-21 14:34:16 · 171 阅读 · 0 评论 -
基于Vue 的单元测试
Vue项目单元测试意义单元测试是软件开发非常基础的一部分。单元测试会封闭执行最小化单元的代码,使得添加新功能和追踪问题更容易。Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接。它会让你更有信心地开发新特性而不破坏现有的实现,并帮助其他开发者理解你的组件的作用。单元测试应该:可以快速运行 易于理解 只测试一个独立单元的工作框架因为单元测试的建议通常是框架无关的,所以下面只是当你在评估应用的单元测试工具时需要的一些基本指引。一流的错误报告当测试失败时,提供有用的错误信原创 2021-06-21 13:42:07 · 443 阅读 · 8 评论 -
Spring 单元测试
事情起源前一段时间学习Go语言,了解到Go中的关键字go可以开启协程goroutine从而实现并发并行。其中有一个sync包中的WaitGroup可以实现异步转同步的功能:等待一组线程的结束。父协程调用Add方法来设定等待的协程的数量,每个被等待的协程在结束任务执行时调用Done方法;同时,父协程调用Wait方法阻塞至所有线程结束。例如,在另一篇文章:Go缓存击穿方案-singleflight源码解读,其中的singleflight就用waitGroup实现了其他协程需等待执行数据库请求的协程程执行原创 2021-06-21 13:38:18 · 197 阅读 · 2 评论 -
spring单元测试之Mockito
Mockito 是一个针对 Java 的单元测试模拟框架,它与 EasyMock 和 jMock 很相似,都是为了简化单元测试过程中测试上下文 ( 或者称之为测试驱动函数以及桩函数 ) 的搭建而开发的工具相对于 EasyMock 和 jMock,Mockito 的优点是通过在执行后校验哪些函数已经被调用,消除了对期望行为(expectations)的需要。其它的 mocking 库需要在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。SpringBoot 中的 pom.x原创 2021-06-19 14:08:49 · 2826 阅读 · 0 评论 -
软件测试课程设计—Appium的运用之工具准备
1.Appium工具1.1原理Appium主要分为Client和Server,Client Server 封装了Selenium客户端类库,为用户提供所有常见的Selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向等; 定义了官方协议的扩展,为用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App等。 Client通过发送HTTP请求给Server,当Server接收Client发送的请...原创 2021-06-18 15:02:45 · 159 阅读 · 1 评论 -
软件测试课程设计—Appium的运用实战
3.配置环境前提(自行百度安装--基操)默认已经有了JDK,Android Studio,Python环境,PythoncharmAppium_Python_Client(调用客户端库和 Appium Server 进行通信)pip install Appium-Python-Client测试是否连接成功,终端输入adb devices -l查看app的包名以及appActivityadb shell dumpsys activity recents | find “inten原创 2021-06-18 14:45:37 · 507 阅读 · 2 评论 -
写一个测试框架|Java 开发实战
一、前言需求:需要一个测试框架,能来测试一个IM系统,同时适配当前业务逻辑。测试那用Jmeter喽,Jmeter也能测试websocket,干嘛要自己开发一个测试框架啊?最重要的一点:TCP协议是自定义的,用Jmeter等框架,无法很好集成。PS:当然对Jmeter不够深入。那么面向一个IM系统,其对应的测试框架,需满足:具有连贯性,上下文:在保持连接情况下,执行一定业务逻辑处理,例如:发消息、加群、加好友等 易接入:开发对接代码简单 生成多种不...原创 2021-06-18 14:35:52 · 200 阅读 · 1 评论 -
2021 前端测试概述
测试类型单元测试 集成测试(组件测试) 功能测试(E2E,端对端测试)测试环境浏览器 无界面浏览器 Nodejs测试工具类型框架对比表框架功能 Test lanuchers Testing structure providers Assertion functions Generate and display test progress and summary Mocks, spies, and stubs G...原创 2021-06-18 14:28:57 · 164 阅读 · 0 评论