<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oscarli的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oscarli</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oscarli]]></copyright><item><title><![CDATA[Jmeter redis连接测试]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/137958510</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/137958510</guid><author>oscarli</author><pubDate>Fri, 19 Apr 2024 11:51:38 +0800</pubDate><description><![CDATA[jmeter连接redis测试]]></description><category></category></item><item><title><![CDATA[python多线程(四)]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/132694994</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/132694994</guid><author>oscarli</author><pubDate>Tue, 05 Sep 2023 16:58:08 +0800</pubDate><description><![CDATA[线程池的基类是 concurrent.futures 模块中的 Executor，Executor 提供了两个子类，即 ThreadPoolExecutor 和 ProcessPoolExecutor，其中 ThreadPoolExecutor 用于创建线程池，而 ProcessPoolExecutor 用于创建进程池。如果使用线程池/进程池来管理并发编程，那么只要将相应的 task 函数提交给线程池/进程池，剩下的事情就由线程池/进程池来搞定。]]></description><category></category></item><item><title><![CDATA[python多线程(三)]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/132672533</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/132672533</guid><author>oscarli</author><pubDate>Mon, 04 Sep 2023 17:11:16 +0800</pubDate><description><![CDATA[如果一个线程对全局变量进行了修改，将会影响到其他所有的线程对全局变量的计算操作，从而出现数据混乱，即为脏数据。生产者生产商品，然后将其放到类似队列的数据结构中，消费者不找生产者要数据，而是直接从队列中取。生产者生产商品后，会将商品添加到队列中。在多线程开发当中，如果生产者处理速度很快，而消费者处理速度很慢，那么生产者就必须等待消费者处理完，才能继续生产数据。如进程、线程同步，可以理解为进程或线程A和B一块配合，A执行到一定程度时要依靠B的某个结果，于是停下来，示意B运行，B运行后将结果给A，A继续运行。]]></description><category></category></item><item><title><![CDATA[python多线程(二)]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/132669414</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/132669414</guid><author>oscarli</author><pubDate>Mon, 04 Sep 2023 16:31:51 +0800</pubDate><description><![CDATA[如果使用Pool创建进程，就需要使用multiprocessing.Manager()中的Queue()来完成进程间的通信，而不是multiprocessing.Queue()，否则会抛出如下异常。线程：进程和线程在使用上各有优缺点：线程执行开销小，但不利于资源的管理和保护，而进程正相反。在Python程序中，可以通过“_thread”和threading（推荐使用）这两个模块来处理线程。在Python3中，thread模块已经废弃。可以使用threading模块代替。]]></description><category></category></item><item><title><![CDATA[python多线程(一)]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/132668814</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/132668814</guid><author>oscarli</author><pubDate>Mon, 04 Sep 2023 14:46:27 +0800</pubDate><description><![CDATA[Python提供了非常好用的多进程包multiprocessing，只需要定义一个函数，Python会完成其他所有事情。借助这个包，可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据。语法格式如下：其中target表示调用对象，args表示调用对象的位置参数元组。kwargs表示调用对象的字典。name为别名。group参数未使用，值始终为None。构造函数简单地构造了一个Process进程，Process的实例方法、Process的实例属性如下表所示。]]></description><category></category></item><item><title><![CDATA[Python 函数装饰器]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/128198455</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/128198455</guid><author>oscarli</author><pubDate>Tue, 06 Dec 2022 10:37:58 +0800</pubDate><description><![CDATA[装饰器（Decorators）是 Python 的一个重要部分。简单地说：他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短，也更 Pythonic（Python范儿）。大多数初学者不知道在哪儿使用它们，所以我将要分享下，哪些区域里装饰器可以让你的代码更简洁。]]></description><category></category></item><item><title><![CDATA[Python实现Singleton模式的几种方式]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/128135632</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/128135632</guid><author>oscarli</author><pubDate>Thu, 01 Dec 2022 17:32:01 +0800</pubDate><description><![CDATA[使用python实现设计模式中的单例模式。单例模式是一种比较常用的设计模式，其实现和使用场景判定都是相对容易的。]]></description><category></category></item><item><title><![CDATA[Python异常类]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/128127265</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/128127265</guid><author>oscarli</author><pubDate>Thu, 01 Dec 2022 10:37:57 +0800</pubDate><description><![CDATA[python异常类总结]]></description><category></category></item><item><title><![CDATA[FastAPI获取Body]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/127616215</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/127616215</guid><author>oscarli</author><pubDate>Mon, 31 Oct 2022 15:18:35 +0800</pubDate><description><![CDATA[FastAPI获取Body]]></description><category></category></item><item><title><![CDATA[Python 编码相互转换]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126848717</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126848717</guid><author>oscarli</author><pubDate>Wed, 14 Sep 2022 11:15:54 +0800</pubDate><description><![CDATA[json byte编码与解码。最后转为json 过程 ]]></description><category></category></item><item><title><![CDATA[代码扫描搭建Sonar+docker+jenkins]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126252926</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126252926</guid><author>oscarli</author><pubDate>Fri, 26 Aug 2022 17:40:30 +0800</pubDate><description><![CDATA[soanr平台搭建笔记]]></description><category></category></item><item><title><![CDATA[python字符与字典、列表相互转换]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126487518</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126487518</guid><author>oscarli</author><pubDate>Tue, 23 Aug 2022 16:21:30 +0800</pubDate><description><![CDATA[python字符与字典、列表相互转换常见几种方法]]></description><category></category></item><item><title><![CDATA[Python笔记3-正则表达式]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126041969</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126041969</guid><author>oscarli</author><pubDate>Thu, 28 Jul 2022 19:55:11 +0800</pubDate><description><![CDATA[python正则表记1]]></description><category></category></item><item><title><![CDATA[python笔记2-找目录下最新修改文件]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126041502</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126041502</guid><author>oscarli</author><pubDate>Thu, 28 Jul 2022 18:43:41 +0800</pubDate><description><![CDATA[找目录下大于某个时间最新修改文件]]></description><category></category></item><item><title><![CDATA[Python笔记1]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/126040083</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/126040083</guid><author>oscarli</author><pubDate>Thu, 28 Jul 2022 18:20:34 +0800</pubDate><description><![CDATA[python时间戳转换，遍历Json list里的字典数据，获取指定目录下文件例表]]></description><category></category></item><item><title><![CDATA[Windows反弹shell测试]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/125043778</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/125043778</guid><author>oscarli</author><pubDate>Mon, 30 May 2022 11:41:57 +0800</pubDate><description><![CDATA[windows反弹shell测试记录]]></description><category></category></item><item><title><![CDATA[CI修改微服务Dockerfile和pom.xml文件]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/118998354</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/118998354</guid><author>oscarli</author><pubDate>Thu, 22 Jul 2021 14:25:14 +0800</pubDate><description><![CDATA[import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author oscar
 * @date 2021/7/20 17:29
 */
p..]]></description><category></category></item><item><title><![CDATA[代码覆盖Jacoco使用]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/118997328</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/118997328</guid><author>oscarli</author><pubDate>Thu, 22 Jul 2021 13:44:36 +0800</pubDate><description><![CDATA[&lt;build&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
      &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
      &lt;version&gt;2.22.2&lt;/version&gt;
     ...]]></description><category></category></item><item><title><![CDATA[Jmeter高级应用笔记]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/108150268</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/108150268</guid><author>oscarli</author><pubDate>Fri, 21 Aug 2020 16:57:37 +0800</pubDate><description><![CDATA[场景接口：

1、获取学生列表集合：要求从列表中随机获取一条学生信息。需要学生的id，grade


{"total":1,"data":[{"id":"6701408323306655744","sn":"20200818000885","name":"沈隆","gender":1,"grade":"一年级","school":"小学","tags":[],"parentName":"沈隆佑","parentContact":"15100149524","duty":{"familyOwner":true]]></description><category></category></item><item><title><![CDATA[跨语言调试RSA加密经验]]></title><link>https://blog.youkuaiyun.com/oscarli/article/details/105386345</link><guid>https://blog.youkuaiyun.com/oscarli/article/details/105386345</guid><author>oscarli</author><pubDate>Wed, 08 Apr 2020 14:05:55 +0800</pubDate><description><![CDATA[最近前端与后端使用了RSA加密对请求Body进行了加密。前端使用JS、后端使用PHP。通过阅读js和php代码，大致了解他们使用加密过程。但我们jmeter压力和自动化时需要使用java代码实现。参考前端和后端的代码，很快写了一个RSA java的代码。但是在java按他们拼接参数去请求时，响应报参数错误。通过抓包获取到前端正常的请求RSAjava代码能正常解密，响应也能解密。

原来参数加密时...]]></description><category></category></item></channel></rss>