<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RUN__IT的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/RUN__IT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; RUN__IT]]></copyright><item><title><![CDATA[Python报错后重试模块]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/119208146</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/119208146</guid><author>RUN__IT</author><pubDate>Thu, 29 Jul 2021 11:59:02 +0800</pubDate><description><![CDATA[Python报错后,重试模块
import time

from retrying import retry


class RetryClient(object):
    @retry(stop_max_attempt_number=3, wait_random_min=1000, wait_random_max=5000)
    def sum_retry(self, a, b):
        print(time.time())
        print(a + b)
        try]]></description><category></category></item><item><title><![CDATA[RUN__IT # Python 发钉钉消息]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/114730599</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/114730599</guid><author>RUN__IT</author><pubDate>Sat, 13 Mar 2021 10:02:47 +0800</pubDate><description><![CDATA[Python 发钉钉消息
import time
import datetime
import requests
import smtplib
import dingtalkchatbot.chatbot as cb
import hmac
import hashlib
import base64
import urllib.parse


class DingRobot:
    def __init__(self):
        self.timestamp = str(round(time.tim]]></description><category></category></item><item><title><![CDATA[RUN__IT #flask项目搭建和常用方法和扩展]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/113746313</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/113746313</guid><author>RUN__IT</author><pubDate>Mon, 08 Feb 2021 23:11:02 +0800</pubDate><description><![CDATA[一.flask项目立项所需要的基本内容
flask_app

manage.py

import redis
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_wtf.csrf import CSRFProtect
from flask_session import Session
from flask_script import Manager
from flask_migrate import Migra]]></description><category></category></item><item><title><![CDATA[RUN__IT # Charles 手机抓包设置流程]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/113444196</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/113444196</guid><author>RUN__IT</author><pubDate>Sat, 30 Jan 2021 18:22:51 +0800</pubDate><description><![CDATA[1.设置端口
proxy --&gt; proxy settings 设置端口为8888,其余默认即可
2.下载证书
help --&gt; ssl proxying --&gt; install charles root certifica…Device or Remote…(最长的那个自己翻译下就知道什么意思了)
3.电脑上信任下载的证书
钥匙串访问—&gt;证书   信任下载的证书
4.设置ssl代理设置
proxy --&gt; ssl proxying settings…—&gt; ssl pro]]></description><category></category></item><item><title><![CDATA[RUNJ__IT # locust创建压测脚本]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/111572422</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/111572422</guid><author>RUN__IT</author><pubDate>Wed, 23 Dec 2020 09:37:38 +0800</pubDate><description><![CDATA[压测脚本locust的使用
# coding=utf-8
import requests
from locust import HttpUser as HttpLocust, TaskSet, task
from urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


class MyBlogs(TaskSe]]></description><category></category></item><item><title><![CDATA[RUN__IT # Python操作MongoDB的方法-增删改查]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/111408362</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/111408362</guid><author>RUN__IT</author><pubDate>Sat, 19 Dec 2020 18:10:01 +0800</pubDate><description><![CDATA[Python操作MongoDB的方法
# -*- coding: utf-8 -*-
# @Time : 2020/12/16 13:40
# @Author : admin

from pymongo import MongoClient
from bson.objectid import ObjectId


class Mongo_DB:
    def __init__(self):
        conn = MongoClient('xxx.xx.241.245', 27017)
      ]]></description><category></category></item><item><title><![CDATA[RUN__IT # python线程池的使用模板]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/108123304</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/108123304</guid><author>RUN__IT</author><pubDate>Thu, 20 Aug 2020 14:38:25 +0800</pubDate><description><![CDATA[import time
import threading


# 子线程要执行的方法
def test(value1, value2=5):
    print("%s threading is printed %s, %s" % (threading.current_thread().name, value1, value2))
    time.sleep(2)
    return 'finished'


# 回调方法,线程执行完成要执行的方法,此方法必须接受future这个参数,固定写法
def ]]></description><category></category></item><item><title><![CDATA[RUN__IT # 性能测试指标及含义--jmeter性能测试优化]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107924919</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107924919</guid><author>RUN__IT</author><pubDate>Mon, 10 Aug 2020 23:54:33 +0800</pubDate><description><![CDATA[负载测试（Load Testing）：负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标，譬如软件在一定时期内，最大支持多少并发用户数，软件请求出错率等，测试的主要是软件系统的性能。
压力测试（Stress Testing）：强度测试也就是压力测试，压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标，譬如在一定时期内，系统的cpu利用率，内存使用率，磁盘I/O吞吐率，网络吞吐量等，压力测试和负载测试最大的差别在于测试目的不同。
容量测试（Volume Testing）：确定系统最大承受量]]></description><category></category></item><item><title><![CDATA[RUN__IT # jmeter在GUI模式下运行, 并生成HTML报告]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107885171</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107885171</guid><author>RUN__IT</author><pubDate>Sat, 08 Aug 2020 20:32:29 +0800</pubDate><description><![CDATA[1.在GUI模式下添加一个监听器(聚合报告)
2.填写保存文件路径,保存到一个不存在的目录下的test.jtl文件

3.运行压测, 会看到jtl文件生成
4.结束后,命令运行jtl文件, 生成HTML报告
C:\soft\apache-jmeter-5.3\bin\jmeter.bat -g C:\Users\admin\Desktop\movie.jtl -o C:\Users\admin\Desktop\bg.html


其实就是压测前写个保存jtl文件的路径, 有了这个文件, 其实就和非GUI运行]]></description><category></category></item><item><title><![CDATA[RUN__IT # Python的日志----logging的使用]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107828205</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107828205</guid><author>RUN__IT</author><pubDate>Wed, 05 Aug 2020 23:41:49 +0800</pubDate><description><![CDATA[方法1  最普通的日志
import logging
import time

# 定义logger
logger = logging.getLogger('mylogger')
# 日志等级
logger.setLevel(logging.INFO)

f_handler = logging.FileHandler('./log/log.log')
f_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filen]]></description><category></category></item><item><title><![CDATA[RUN__IT # python发送邮件工具包]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107731474</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107731474</guid><author>RUN__IT</author><pubDate>Sat, 01 Aug 2020 15:26:38 +0800</pubDate><description><![CDATA[发送邮件
1.可用直接用拿来使用,一个工具类修改邮箱密码后,在需要发邮件的地方直接调用
import smtplib
from email.mime.text import MIMEText
from email.header import Header


class SendEmailTask(object):
    """发送邮件"""
    def __init__(self):
        self.mail_host = "smtp.qq.com"
        self.mail_u]]></description><category></category></item><item><title><![CDATA[RUN__IT # pytthon操作Excel进行接口测试的脚本]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107682264</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107682264</guid><author>RUN__IT</author><pubDate>Thu, 30 Jul 2020 10:03:01 +0800</pubDate><description><![CDATA[流程介绍:
1.读取excel中的用例
2.判断内容,进行发送请求
3.拿到相应,和Excel中的结果进行比较
4.把结果写入Excel中

话不多说直接看代码,需要交流的  vx:RUN_IT_LOCAL

conf.py
# 主要进行配置路径和cookies
Data_Path = r"C:\Users\admin\Desktop\api_test.xls"
Cookies = ""

excel_read_write.py
import json
import xlrd
from xlutils.co]]></description><category></category></item><item><title><![CDATA[RUN__IT # 非GUI运行jmeter的jmx脚本，并生成报告--Linux和Windows]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/107462613</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/107462613</guid><author>RUN__IT</author><pubDate>Mon, 20 Jul 2020 14:20:57 +0800</pubDate><description><![CDATA[wx:15737890232
jmter是一款轻量级的压力测试软件，非常方便使用。
首先在我们本地编写完脚本之后。上传到服务器。注意修改host和一些csv的路径，因为本地和服务器上肯定是不一样的。
保证一切正常之后，就可以执行命令
我喜欢cd 到jmeter的bin目录下执行命令
sh jmeter.sh -n -t 脚本名称.jmx（带路径的，要不然服务器找不到你的文件，除非你就放在当前执行命令的地方，比如我的是jmeter的bin目录) -l  jtl名称.jtl (同样需要带路径，原理如上)

说一]]></description><category></category></item><item><title><![CDATA[websocket的介绍]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/105253184</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/105253184</guid><author>RUN__IT</author><pubDate>Wed, 01 Apr 2020 19:09:33 +0800</pubDate><description><![CDATA[websocket的介绍
WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455，并由RFC7936补充规范。WebSocket API也被W3C定为标准。
WebSocket使得客户端和服务器之间的数据交换变得更加简单，允许服务端主动向客户端推送数据。在WebSocket API中，浏览器和服务器只需要完成一次握手...]]></description><category></category></item><item><title><![CDATA[RUN__IT @ 一台新的服务器的环境安装]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/103294413</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/103294413</guid><author>RUN__IT</author><pubDate>Thu, 28 Nov 2019 15:35:42 +0800</pubDate><description><![CDATA[1.创建用户
1.useradd -m -g 组  新建用户名

2.passwd 用户名

3.usermod -s /bin/bash 用户名

4.给用户添加sudo权限
	chmod +w /etc/sudoers
	vi /etc/sudoers
	添加权限，类似root用户那样格式
	用户名 ALL=(ALL:ALL) ALL

2.更新源
sudo apt-get update

3...]]></description><category></category></item><item><title><![CDATA[RUN__IT # mysql远程连接问题]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/103294331</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/103294331</guid><author>RUN__IT</author><pubDate>Thu, 28 Nov 2019 15:30:52 +0800</pubDate><description><![CDATA[mysql远程连接问题
服务器端口开放
1.mysql默认端口是 3306，所以要开放此端口

编辑 mysql 的配置文件 mysqld.cnf
1.执行 
	sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2.把 bind-address = 127.0.0.1 注释掉

1.在装有MySQL的机器上登录MySQL 
	mysql -u root -p密码...]]></description><category></category></item><item><title><![CDATA[RUN__IT # MongoDB常用方法]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/103234806</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/103234806</guid><author>RUN__IT</author><pubDate>Mon, 25 Nov 2019 11:13:35 +0800</pubDate><description><![CDATA[MongoDB

1. MongoDB的启动服务
        1.开启服务    sudo mongod 
        2.开启客户端  mongo
        
2.MongoDB的数据库操作 
        1.查看默认的数据库      db      
        2.查看所有的数据库     show dbs
        3.查看所有的集合(表)   db.crea...]]></description><category></category></item><item><title><![CDATA[RUN__IT # Ubuntu下使用crontab创建定时任务]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/102956677</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/102956677</guid><author>RUN__IT</author><pubDate>Thu, 07 Nov 2019 15:51:29 +0800</pubDate><description><![CDATA[Ubuntu下使用crontab创建定时任务
安装：apt-get install cron
启动：service cron start
重启：service cron restart
停止：service cron stop
检查状态：service cron status
查询cron可用的命令：service cron
检查Cronta工具是否安装：crontab -l

如果cron工作正...]]></description><category></category></item><item><title><![CDATA[RUN__IT # 爬虫gerapy的部署]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/102512240</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/102512240</guid><author>RUN__IT</author><pubDate>Fri, 11 Oct 2019 23:30:34 +0800</pubDate><description><![CDATA[爬虫部署
scrapyd
1. 服务端安装  pip install scrapyd 
   2. 客户端安装  pip install scrapyd-client

   3. 服务端 有个设置文件 :conf配置文件  bind_address = 0.0.0.0; 允许所有的IP访问
   4. 项目配置: 

            原始样子
            [deploy]
 ...]]></description><category></category></item><item><title><![CDATA[RUN__IT # selenium定位截图]]></title><link>https://blog.youkuaiyun.com/RUN__IT/article/details/100407242</link><guid>https://blog.youkuaiyun.com/RUN__IT/article/details/100407242</guid><author>RUN__IT</author><pubDate>Mon, 02 Sep 2019 22:12:13 +0800</pubDate><description><![CDATA[selenium定位截图

from selenium import webdriver
import time
from PIL import Image
 
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(3)
 
# 演示一：全网页截图
# driver.save_screenshot('...]]></description><category></category></item></channel></rss>