TestDemo

pytest之mark的使用

坚强是说给别人听的谎言 提交于 2021-02-14 12:58:58
使用方法: 1、注册标签名 2、在测试用例/测试类前面加上:@pytest.mark.标签名 打标记范围:测试用例、测试类、模块文件 注册方式: 1、单个标签: 在conftest.py添加如下代码: def pytest_configure(config): # demo是标签名 config.addinivalue_line( " markers " , " demo:示例运行 " ) 2、多个标签: 在conftest.py添加如下代码: def pytest_configure(config): marker_list = [ " testdemo " , " demo " , " smoke " ] # 标签名集合 for markers in marker_list: config.addinivalue_line( " markers " , markers) 3、添加pytest.ini 配置文件(在你项目的任意一个文件下,新建一个file,文件命名为pytest.ini) [pytest] markers = smoke:this is a smoke tag demo:demo testdemo:testdemo 使用方法: import pytest @pytest.mark.testdemo def test_demo01(): print ( "

pytest失败重跑插件: pytest-rerunfailures使用与坑(全网独家精华)

泪湿孤枕 提交于 2021-01-29 15:42:09
背景 在编写接口case的时候,我们常遇到一个这样的问题: 测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题),然后执行接口case也因此偶发失败。比如同一个接口case跑五次,其中有两次失败,另外三次都是成功的,这种偶发性的环境问题就需要我们手动重跑(还不一定能够通过)。有没有一个比较好的机制,保证case能够尽最大努力通过测试呢? 这里我们介绍pytest的一个失败重跑插件: pytest-rerunfailures 介绍 pytest-rerunfailures 是一个通过重跑机制来消除不稳定失败的pytest插件。 项目地址:https://github.com/pytest-dev/pytest-rerunfailures 安装 安装&运行要求: Python 3.6~3.9, or PyPy3 pytest 5.0+ 安装插件 sudo pip(pip3) install pytest-rerunfailures 使用pytest-rerunfailures 使用方式有两种: 命令行参数 装饰器方式 命令行参数模式 示例case:test_demo.py #!/usr/bin/env python3#!coding:utf-8import pytestimport randomdef test_simple_assume(): #每次case运行的值为1或者2

kafka学习(四)kafka安装与命令行调用

大城市里の小女人 提交于 2021-01-07 08:05:14
一、 安装JDK    过程就不过多介绍了... 二、 安装Zookeeper    安装过程可以参考 此处~ 三、 安装并配置kafka Kafka下载地址 http://kafka.apache.org/downloads 解压文件(我的目录是E:\zhanghaoBF\kafka\kafka_2.11-2.3.0 【PS: 这里不要在Program Files等文件名之间有空格的目录下,不然一会执行会不识别路径 】 ) 打开目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0\config下server.properties文件,把log.dirs修改为【log.dirs=D:\kafka_2.12-0.11.0.0\kafka-logs】,把listeners的配置放开 四、 启动并测试kafka 启动ZK 启动kafka     进入kafka文件目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0,执行以下命令,启动kafka通讯的服务器broker .\bin\windows\kafka-server-start.bat .\config\server.properties 创建topic    进入kafka文件目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0,输入以下命令

SpringBoot系列(1)——AOP-入门

↘锁芯ラ 提交于 2020-12-31 08:17:28
摘要 aop关键词 spring aop小demo <!--more--> 概念 使用场景:与业务无关的且经常使用到的公共功能如鉴权,日志,性能优化,事务,错误处理,资源池,同步,审计,幂等等 优点:降低耦合度,易扩展,高复用 实现方式:静态代理(AspectJ) + 动态代理(CGlib/Jdk) aop关键词 连接点(Joinpoint) 连接点就是增强的实现 **切点(PointCut)**就是那些需要应用切面的方法 增强(Advice) 前置通知(before) 后置通知(after) 异常通知(afterThrowing) 返回通知(afterReturning) 环绕通知(around) 目标对象(Target) **织入(Weaving)**添加到对目标类具体连接点上的过程。 代理类(Proxy) 一个类被AOP织入增强后,就产生了一个代理类。 切面(Aspect) 切面由切点和增强组成,它既包括了横切逻辑的定义,也包括了连接点的定义 Spring aop测试 pom <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.5.RELEASE</version> <relativePath/

Linux上天之路(十八)之自动化部署

你离开我真会死。 提交于 2020-12-28 08:06:09
pexpect Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。 import pexpect import sys child = pexpect.spawn('ssh std20@123.57.211.212') child.logfile = sys.stdout #fout = file('mylog.txt', 'w') #child.logfile = fout child.expect('password:') child.sendline('std20') child.expect('std20.*') child.sendline('ls /') child.expect('std20.*') child.sendline('exit') #coding=utf_8 from pexpect import pxssh import sys s = pxssh.pxssh() s.logfile = sys.stdout

Umi + Dva + Antd的React项目实践

旧时模样 提交于 2020-11-24 19:01:41
记录一下最近项目所用到的技术React + Dva + Antd + umi ,以免忘记。之前没有用过它们其中一个,也是慢慢摸索,了解数据整个流程。 先了解下概念 React 不多说,3大框架之一; Dva 是由阿里架构师 sorrycc 带领 team 完成的一套前端框架,在作者的 github 里是这么描述它的:“dva 是 react 和 redux 的最佳实践”。现在已经有了自己的 官网 https://dvajs.com; Antd 是阿里的一套开箱即用的中台前端/设计解决方案,UI框架,官网 http://ant-design.gitee.io/index-cn; umi 是 dva 作者 sorrycc 最近整的新玩意,2018.2.26 发布的 1.0 版本。sorrycc 认为之前 dva 固然好,但还要用户自己引入 UI 工具 antd,打包工具 roadhog,路由 react-router,状态管理器 dva,这些很麻烦,所以弄了这个,官网 https://umijs.org; 在dva中主要分3层,models,services,components,其中models是最重要概念,这里放的是各种数据,与数据交互的应该都是在这里。services是请求后台接口的方法。components是组件了。 services层: export function

Java 线程与多线程

血红的双手。 提交于 2020-11-01 22:02:28
Java是一门支持多线程的编程语言! 什么是进程? 计算机中内存、处理器、IO等资源操作都要为进程进行服务。 一个进程上可以创建多个线程,线程比进程更快的处理单元,而且所占用的资源也小,多线程的应用也是性能最高的。 Java的多线程实现:(三种方式)   在Java中实现多线程有两种途径:     1、继承Thread类     2、实现Runnable接口     3、实现Callable接口 继承Thread类: class MyThread extends Thread { // 继承Thread 即 多线程类【线程操作主类】 } ps:在Java中,任何一个类继承了Thread类,都视为该类为多线程类。 在Java程序中都有一个“起点”即开始的地方;那么多线程类也有一个“起点”—— run()方法 ,也就是说在多线程的每个主体类中都必须要覆写Thread类中所提供的 run() 方法 public void run() ; run()方法没有提供参数和返回值,那么也就表示了线程一旦开始就要一直执行,不能够返回内容。 import sun.security.mscapi.KeyStore.MY; class MyThread extends Thread { // 继承Thread 即 多线程类 private String name ; public MyThread

java基础第七篇之接口

不问归期 提交于 2020-10-28 04:26:36
1.什么是接口: * 接口是方法的集合,而且接口中的方法全是抽象的 * 你可以把接口看成一个特殊的"抽象类",接口中的方法全是抽象的 * * * 2.java中怎么定义接口: * 定义类的关键字:class * 定义接口的关键字:interface * 格式: * public interface 接口名{ * //成员方法 * public abstract void demo01(); * public abstract void demo02(); * } * 接口的方法 必须是public abstract 修饰,你可以不写,也可以选择性写,但是不写不代表没有(我们建议写) * * 3. 接口可以创建对象吗?不可以创建对象,接口也是天生作为父类 * * 4.类和接口的关系,叫做实现,类实现接口(继承是类和类之间的关系,实现是类和接口的关系) * * 5.怎么实现: implements(实现的关键字) extends(继承的关键字) * a.一个类实现接口,这个类我们称为接口的实现类 * b.一个类继承抽象类,这个类我们称为抽象类的子类 * 6.接口中成员的特点: * a.所有的方法必须都是 public abstract修饰 * * b.接口中成员变量必须由public static final 修饰 * 我们建议以上所有的修饰符都写上 接口中成员的特点: * 1

小程序接入第三方ui库(组件库)

核能气质少年 提交于 2020-10-28 02:45:05
1.下载好稳定版的微信开发者工具 2.创建小程序项目文件夹(如:testDemo) 3.建好用开发者工具编译器打开 然后初始化package.josn 执行安装 vant Weapp: npm i @vant/weapp -S --production 勾上增强编译和使用npm模块 接着点击工具构建npm在对应页面的.json文件 或者在 app.json文件如下图配置 若后面文档更新则按官方文档 和 ui库更新文档配置既可;然后组件在各页面所需之处用既可; 来源: oschina 链接: https://my.oschina.net/u/4396566/blog/4274445

1.2.0版本seata整合nacos实现分布式事务(2)

不问归期 提交于 2020-10-02 12:17:26
上一篇 https://my.oschina.net/u/3901188/blog/4316832 已经完成了 Seata 的服务端 整合 nacos 的搭建启动。本篇章记录 Seata 客户端实现模拟分布式事务场景。 分布式事务场景准备:客户端分三个服务 order订单服务、storage库存服务、account账户余额服务。三个服务对应的独立的数据库。 库需要自行建立,我这里创建的名称为 seata_order、seata_account、seata_storage 三个库名称。sql的建库建表语句我都写代在项目的sql文件夹中。 写在这里太过于长了,太占地方了,项目demo我直接打包上传上码云了。项目地址链接: https://gitee.com/maogouxiong/seata-nacos-test-demo 需要的伙伴可以上去下载下来自行测试。 这里我主要关键点: 项目我使用了 mybatis-plus 的代码生成器直接生成代码。代码生成器类我放在了每个服务项目的test目录下。 另外代理数据源是要配置的。在代码里面每个服务都有配置代理数据源,需要留意看下 我这里测试 Seata 服务端是通过源码启动的。源码启动看下我上一篇文章有讲到。 先启动 Seata 服务端,当 Seata 服务端启动成功,启动日志是这样的: 然后启动 三个客户端服务, 当 order订单服务