基于RobotFramework——自定义kafka库并导入使用

Kafka

首先介绍一下我了解的kafka的皮毛信息——

  • kafka——一个分布流处理系统:流处理:可以像消息队列一样publish或者subscribe信息;分布式:提供了容错性,并发处理消息的机制
  • 集群——kafka运行在集群上,集群包含一个或多个服务器。所谓服务器集群,就是将很多服务器集中在一起进行同一种服务,在客户端看起来像是只有一个服务器。集群可以利用多个计算机进行并行计算从而有很高的计算速度,也可以使用多个计算机做备份,从而使得一个机器坏了,整个系统还能正常运行
  • Broker——一个集群有多个broker(一台服务器就是一个broker),一个broker可以容纳多个Topic
  • Topic——主题,由用户定义并配置在kafka服务器,用于建立生产者和消费者之间的订阅关系。生产者发送消息到指定的topic下,消费者从这个topic下消费消息。每一条消息包含键值(key),值(value)和时间戳(timestamp)
  • Producer——消息生产者,就是像kafka broker发消息的客户端
  • Consumer——消息消费者,是消息的使用方,负责消费kafka服务器上的信息
  • Partition——消息分区,一个Topic可以分为多个Partition,每个Partition是一个有序的队列,Partition中的每条消息都会被分配一个有序的id(offset)
  • offset——消息在Partition中的偏移量,每一条消息在Partition都有唯一的偏移量。
  • Consumer Group——消费者分组,用于归组同类消费者。每个consumer属于一个特定的consumer group,多个消费者可以共同消费一个Topic下的消息,每个消费者消费其中的部分消息,这些消费者就组成了一个分组,拥有同一个分组名称,通常也被称为消费者集群。

kafka-python

kafka-python是一个python的Kafka客户端,可以用来向kafka的topic发送消息、消费消息。

接下来介绍如何封装自定义凡人kafka库,然后再RobotFramework上使用——

  1. 创建文件夹
  • 在D:\Python27\Lib\site-packages的文件夹里面创建你的自定义库文件夹,例如lmkafka

  • 在文件夹里面创建两个文件,分别是__init__.py和producer.py(该文件名自定义),代码如下
#producer.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#命令行输入pip install kafka-python,进行下载

from kafka import KafkaProducer

class Produce(object):
    def produce(self,ip,topic,filepath):
        producer = KafkaProducer(bootstrap_servers=[ip])
        with open(filepath) as f:
            msg = f.read()
            print msg
        # 发送
        producer.send(topic, msg)
        #print filepath
        producer.close()
#__init__.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-

from producer import Produce

class lmkafka(Produce):
    ROBOT_LIBRARY_SCOPE = ‘GLOBAL‘
  • 创建成功后,尝试重启ride,导入lmkafka库,如果导入不成功(库名为红色),则需要添加路径——在D:\Python27\Lib\site-packages的文件夹里面添加.pth文件,例如lmkafka.pth
  • 文件内容:D:\Python27\Lib\site-packages\lmkafka


  • 再次查看,库导入成功

库的使用——

可以向kafka里面发送数据啦~

原文地址:https://www.cnblogs.com/testxiaobai/p/10522980.html

时间: 2024-11-08 01:56:03

基于RobotFramework——自定义kafka库并导入使用的相关文章

python导入自定义的库

from  .自定义的库  import *(ps:注意点和星号) 示例 在test导入train和utils 三个文件在同一目录下,文件结构如下 test文件中导包语句 from .train import * from .utils import * 原文地址:https://www.cnblogs.com/wei-jing/p/10987637.html

深入分析JavaWeb Item25 -- 自定义标签开发案例和打包自定义标签库

一.开发标签库案例 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java package me.gacl.web.simpletag; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import jav

jsp自定义函数库

步骤如下: 1.创建一个函数库类,里面的方法就是标签函数库要调用的方法(必须是静态方法) package com.mdd.tag; public class JiSuan { //两个数相加 public static double add(double num1,double num2){ return num1+num2; } } 2.创建自定义的tld文件放到web-inf下面,定义自己自定义的函数库的写法 <?xml version="1.0" encoding=&quo

一步一步实现基于Task的Promise库(四)无参数的WorkItem

接着上一篇我直接给出代码,现在支持了new Task(), then(), all(), any() 这些不传参的调用方式. 1 (function(){ 2 var isFunction = function (target) { 3 return target instanceof Function; 4 }; 5 var isArray = function (target) { 6 return target instanceof Array; 7 }; 8 9 //自定义事件管理(代码

一步一步实现基于Task的Promise库(二)all和any方法的设计和实现

在上一篇中我们已经初步完成了Task类,如果仅仅是这些,那么没有多大意义,因为网上这类js库有很多,现在我们来些更复杂的使用场景. 如果我们现在有这样一个需求:我们要先读取aa.txt的内容,然后去后台解析,同时bb.txt也要读取解析,然后当两个文件都解析完了,我们还要合并两部分内容存到cc.txt中,最后发个通知说ok了..需求很变态,但是我还是想问有没有好的办法呢?按照最原始的嵌套回调的写法好像不是那么容易了,因为你没法知道aa.txt和bb.txt两个文件的读取解析谁先完成,所以你除了要

WebLogic配置自定义密钥库和SSL的操作手册

(定制标识和定制信任&Keytool&TLS1.0) 1.启用SSL端口 保存,重启受管Server IE浏览器访问 谷歌浏览器访问 2.查看密钥库和SSL配置 密钥库 SSL 3.手动制作identity.jks和trust.jks 新建jks目录 [[email protected] ~]$ mkdir jksHL [[email protected] ~]$ cd jksHL/ 生成标识identity.jks密钥库 如下标黄色背景部分的说明: weblogicHL为"SS

如何自定义测试库(转载)

在网上下载的各种测试库,往往因为各种原因总是不那么完美,现在来学习一下怎么自定义一个RFS库吧! Step 1. 给自定义库起名,如MyLibrary.操作:在Python目录下"..\Lib\site-packages" 建立文件夹"MyLibrary". Step 2. 在"MyLibrary"文件夹中新建一个"version.py"文件,用于描述自定义测试库的版本信息. 代码如下: VERSION = '1.0' 在&q

HyperLedger Fabric基于zookeeper和kafka集群配置解析

简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共

iOS运营级B2B服务平台App、自定义图标库、个人中心页面、识别身份证Demo、瀑布流等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... iOS可自定义图表库 - PNChart 开源一款曾是运营级的B2B服务平台APP<云采> 使用ffmpeg解码最简iOS播放器 注释得非常清楚的瀑布流,和自己的一些想法 iOS日志框架学习分享 在iOS App中录制MP3和AMR:ZWAudioRecordTool 一套应用于swift项目的空白页组件EmptyPage 2.0 扫雷简单实现 iOS优质博客 iOS