python - 集成石墨和蝗虫时出错
问题描述
我正在尝试使用以下方法将结果从蝗虫发送到石墨
def __init__(self):
super(MyLocust, self).__init__()
self.sock = socket.socket()
self.sock.connect( ("localhost", 2003) )
locust.events.request_success += self.hook_request_success
def hook_request_success(self, request_type, name, response_time, response_length):
self.sock.sendall('%s %d %d\n'% ("performance." + name.replace('.', '-'), response_time, time.time())) def
def exit_handler(self):
self.sock.shutdown(socket.SHUT_RDWR)
self.sock.close()
我收到以下错误TypeError: a bytes-like object is required, not 'str'
解决方案
sock.sendall() 需要一个类似字节的对象。
在将字符串传递给 sendall 之前对字符串进行编码,将行更改为类似
self.sock.sendall(('%s %d %d\n'% ("performance." + name.replace('.', '-'), response_time, time.time())).encode())
推荐阅读
- java - 在我的应用程序将我定向到电子邮件应用程序后,如何了解是否实际发送了电子邮件
- php - mysqli_fetch_assoc 只返回一次迭代的结果
- reactjs - 未能将 {history} 对象作为道具传递给路由器
- python - 我在每一行的数据框中的第一个停用词没有被删除
- c# - 在挑选时随机排列数组或随机化索引?
- swift - 属性继承类
- php - CakePHP3:如何即时更改关联策略?
- http - 不同的变量类型在 HTTP 正文中使用不同数量的空间吗?
- excel - 如何计算一列的百分比大于Excel中B列的平均值?
- elasticsearch - elasticsearch 同义词分析器给出 0 个结果