-
利用python发送第一个请求关于HTTP请求,建议大家提前了解一下,再来看该篇文章该篇文章以简单的登录接口为例,干货来了:首先利用python发请求就会用到request库,先导入进来import requests1导入该库之后,就开始代码主体部分了#首先我们要把我们要测试接口API写进来url="http://localhost:8080/jwshoplogin/user/login.do"#紧接着把我们需要的参数定义一下userinfo={"username":"大娟", "password":"Aa111111"}#参数定义完成后,就该让这个请求带着这个参数去乖乖的请求服务器了,下面的代码意思为将响应回来的信息以文本格式给到resres=requests.post(url,data=userinfo).text#得到响应信息后,将他打印出来print(res)这个为该接口正常响应回来的信息,作为测试我们当然要写个断言来判断他响应回来的对不对嘛,#.find这个方法是在响应回来的信息里面找登录成功四个字,找不到会返回-1负一的值msg=res.find("登录成功")if msg>0: print("测试通过")else: print("测试失败")一个简单的接口测试就这么完成了。将请求参数进行参数化处理这时候我们用到的是csv文件,现将csv库倒进来,还有我们必要的request库import requestimport csv下面是代码主体,具体解释我会写进代码里url='http://localhost:8080/jwshoplogin/user/login.do'#上面url就不解释了,但是userinfo我要说下,这里为空是因为我一会在文件里读取的内容放到这里面userinfo={}#下面的两个是对文件的操作,r为对文件读(read),w为对文件写(write)file1=open("interfacePara.csv",'r')file2=open("loginResult.csv","w")#这个意思为将读出来的内容放到table里面table=csv.reader(file1)for row in table:#第一次循环#将读到的第一行第一列的值给到username userinfo["username"]=row[0]#将读到的第一行第二列的值给到password userinfo["password"]=row[1]#这时候userinfo拿到的值为username="大娟",password="Aa111111" response=requests.post(url,data=userinfo).text#查看一下响应回来的信息 print(response) print(row[2]) #在响应回来的信息里面找csv文件里的第一行第三列的值,然后做判断,写到文件loginResult.csv里面 r=response.find(row[2]) if r>0: print("测试通过") #因为在csv文件里每个分割是用逗号分割的所以这个要加上逗号,而且是英文格式的大家不要搞错,"\n"是换行的意思 file2.write(row[0]+","+row[1]+","+row[2]+","+"测试通过"+"\n") else: print("测试异常") file2.write(row[0] + "," + row[1] + "," + row[2] + "," + "测试失败" + "\n")
-
在所有组件都安装和对接完成后,可以运行一次全量的自动化测试任务来检查数据平台的安装和对接结果。使用BO资产的租户用户登录AppCube平台。选择“管理 > 应用管理 > 应用导航”。搜索“AutomationTest”,单击自动化测试应用后面的预览。在“测试任务管理”中单击“全量验收测试”后面的执行按钮。执行完成后,在执行记录里找到“全量验收测试”。单击查看执行记录查看按钮查看详细的用例执行结果。如果有失败的用例,需要根据用例的日志(日志的查看方法请参考自动化用例错误日志检查)解决环境的问题,重新执行4进行检查。在AppCube生产环境上自动化测试工具只能在系统商用前运行,在系统正式商用后请不要再运行自动化测试任务。
-
【功能模块】智慧园区自动化测试【操作步骤&问题现象】1、自动化测试中 自带的测试用例,需要进行配置吗 ?有的可以测试通过,有的不能通过2、【截图信息】【日志信息】(可选,上传日志内容或者附件)============================= test session starts ============================== platform linux -- Python 3.7.5, pytest-6.0.1, py-1.9.0, pluggy-0.13.1 rootdir: /opt/service/pytest-service/apps/Hi-zq2021, configfile: pytest.ini plugins: ordering-0.6 collected 1 item Hi-zq2021/A02_模拟第三方消息上报/test_03_电表状态上报.py [0;32m2021-12-17 10:42:07,371 [INFO] =================== [post] [CommonService] =================== [0;32m2021-12-17 10:42:07,371 [INFO] request_url: https://192.168.9.163:1443/httpconnector/message [0;32m2021-12-17 10:42:07,371 [INFO] request_headers: {'Content-Type': 'application/json', 'X-HW-ID': 'Hi-zq2021__io.basepoint.connectionmax.iot', 'MsgTopic': 'T_IO_DEVICE_DATACHANGED__Hi-zq2021', 'MsgTag': 'tag-pytest', 'MsgBusinessId': 'id-pytest', 'X-HW-APPKEY': 'vCR8hxTblRQgU3nMAK5efw=='} [0;32m2021-12-17 10:42:07,371 [DEBUG] request_body: { "platformId": "basepoint.connectionmax.iot", "notifyType": "deviceDataChanged", "requestId": "287358764596", "eventTime": "20211217104207", "deviceId": "ElectricityMeter001", "gatewayId": "gateway12345678", "messageCode": "1", "data": { "onlineStatus": "1" } } [0;32m2021-12-17 10:42:07,372 [INFO] =================== [get] [获取ROMA登录公钥] =================== [0;32m2021-12-17 10:42:07,372 [INFO] request_url: https://studioroma.e.huawei.com/roma/sso/key [0;32m2021-12-17 10:42:07,373 [INFO] request_headers: {'Content-Type': 'application/json'} [0;32m2021-12-17 10:42:07,489 [INFO] response_cost: 0.116216 s [0;32m2021-12-17 10:42:07,489 [INFO] response_status_code: 200 [0;32m2021-12-17 10:42:07,580 [INFO] =================== [post] [登录ROMA] =================== [0;32m2021-12-17 10:42:07,581 [INFO] request_url: https://studioroma.e.huawei.com/roma/asset-m2mservice/1.0/tokens [0;32m2021-12-17 10:42:07,581 [INFO] request_headers: {'Content-Type': 'application/json'} [0;32m2021-12-17 10:42:07,921 [INFO] response_cost: 0.340611 s [0;32m2021-12-17 10:42:07,922 [INFO] response_status_code: 200 F =================================== FAILURES =================================== ___________________________________ test_run ___________________________________ Hi-zq2021/A02_模拟第三方消息上报/test_03_电表状态上报.py:35: in test_run request.send() /opt/pytest/SmartCampusBVTest/public/core/http_request_impl.py:54: in send ??? /opt/pytest/SmartCampusBVTest/public/core/http_request_impl.py:137: in __send_request ??? /opt/pytest/SmartCampusBVTest/public/core/abc_proxy.py:24: in run ??? /opt/pytest/SmartCampusBVTest/public/service/RomaService.py:335: in get_app_key ??? /opt/pytest/SmartCampusBVTest/public/service/RomaService.py:475: in login ??? E KeyError: 'csrf_token' =========================== short test summary info ============================ FAILED Hi-zq2021/A02_模拟第三方消息上报/test_03_电表状态上报.py::test_run - K... ============================== 1 failed in 0.89s ==================
-
问题背景描述使用sysbench对mysql5.7.21进行256并发压测时,x86下TPS为10685,Kunpeng920 下压测结果为4197,性能较原有X86环境下有较大差距。 问题分析过程Top命令查看cpu资源使用情况 执行脚本进行压测时发现,top命令下mysql进程cpu使用率6000%左右,其中系统调用占用较高,为进一步明确mysql进程在执行哪些过程进行perf 热点函数和火焰图分析。perf命令查看热点函数通过在压测过程中执行perf top命令,查看到相关函数调用较高:进一步明确分析函数调用栈关系,使用perf record命令抓取一段时间perf 数据,进行解析后生成相应火焰图:分析发现mysql中调用的热点函数MVCC::view_open和PolycyMutex_在底层调用的是spin_lock相关函数,进而导致系统调用高,大量线程都在进行自旋空转,消耗cpu资源。问题解决措施及结果修改Mysql源码中CacheLine(可选优化项)通过github上mysql相关issue发现,在mysql中存在对cacheLine的硬编码现象,mysql中cachline大小是适配X86平台的为64字节,Kunpeng 920下cacheLine为128字节。可参考以下issue链接cid:link_2对mysql源码进行修改,此措施可获得相应的性能提升。Cacheline机制理解:CPU标识Cache中的数据是否为有效数据不是以内存位宽为单位,而是以Cacheline为单位。这个机制可能会导致伪共享(false sharing)现象,从而使得CPU的Cache命中率变低。出现伪共享的常见原因是高频访问的数据未按照Cacheline大小对齐,而在高并发压测mysql时,其中加锁的全局变量或数据一般是在高频的访问,这就可能导致性能的下降。(对于高频访问的锁变量,实际是对锁变量进行高频的读写操作,容易发生伪共享问题)修改mysql数据库配置参数Mysql中主要影响spin_lock相关性能参数的主要有:innodb_thread_concurrency、innodb_spin_wait_delay、innodb_sync_spin_loops。其中nnodb_thread_concurrency推荐设置为cpu的核心数,通过上调innodb_spin_wait_delay和innodb_sync_spin_loops参数,同时使用perf top命令观测MVCC::view_open和PolycyMutex_热点函数使用率,当使用率下降到合理范围内时,即达到预期效果。由于原子操作在x86和kunpeng 920平台上的实现存在差异,加上kunpeng920的核心数较多,导致在mysql高并发压测时出现了spin_lock相关系统调用较高,通过相应的mysql参数优化即可实现性能提升,结合Mysql下相关自旋锁的代码实现,可更好的理解这两个参数的作用,参考链接如下:cid:link_1优化后测试结论 通过对mysql的相关优化,最终在256并发下,kunpeng 920上TPS达到了11700,优于原X86压测结果(TPS 10685)。
-
-
有没有大咖能从建实例开始讲讲哈
-
# 1、去除空格name = "pypy py"# 方法1:name = name.split(" ") # 先转换成列表print("".join(name)) # 在对列表进行拼接# 方法2:# print(name.replace(" ","")) # 直接对空格进行替换# 2、格式化输出username = "xiaobai"password = "123456"age = 12user = f"""--------------用户名:{username}密码:{password}年龄:{age}--------------"""print(user)# 3、自动化访问接口的流程# 准备接口测试用例的基本数据:请求地址,请求方法,请求参数,预期结果等等url = input("请输入接口地址")name = input("请输入用户名")password = input("请输入密码")expected = input("请输入结果")print(f"访问接口的过程:{url}?username={name}&pass={password}")
-
1. 软件测试不是点点点,还有性能测试,自动化测试,安全测试,甚至于AI测试,大数据测试等等,软件测试的前景还是非常好的。 2. 软件测试相对门槛比较低,前期比较容易入门,哪怕不是计算机专业的小白,也能轻松掌握,不过,软件测试后期的难度和开发没有什么两样,想要拿到高薪,就得学会自动化测试,接口测试这些编码知识。 3. 经常有人抱怨,学了用不上,学完就容易忘记,因为学的都是理论知识,长时间不用自然会容易忘记,最好边学边找项目练手。 4. 如果你身边有人说测试很简单,薪资混混也很容易,那么他基本上过几年还是如此,没啥大的长进。 5. 软件测试有高薪也有低薪,月入两三千是真实存在的,月入三五万的也是。 6. 软件测试用不用报培训班?看个人需求吧,如果你觉得自己的学习能力很强,也有项目可练手,那么完全没有必要报培训班;如果你的学习能力或者自制力很差,又真的想要从事软件测试这一行业,那你最好还是报培训班,一方面是培训机构能够更加系统,全面的教你知识,老师能起到一定的监督作用,遇到不会的也有专业人士帮你解答;另外一方面,培训机构会教你很多真实地符合企业需求的项目经验,让你更快上手。 7. 软件测试是需要持续的学习,不断地分析总结,主动地去探索,如果一直不进步,很有可能被他人取代或者被淘汰。 8. 虽然软件测试也可以看书学习,但是书籍的更新相比其它要慢很多,但是那些经典的,基础的,还是很经典的,多看看没啥坏处,但是千万不能学“死”了,学完不会用,等于白学。 9. 真的不建议自学(不是不能),因为自学放弃的占多数,至于放弃的原因五花八门,比如坚持不下去一直去学习,学了新的忘了旧的,不知道如何入门,学完没有项目可做,自以为学的不错,却没找到好的工作等等,闭门造车不如博采众长。 10. 软件测试的职业规划大致有两种,一种是技术路线,另外一种是管理路线,两条路发展前景都非常不错。 11. 为什么有人做测试越做越好,有人却慢慢不如别人?在你工作的时候,别人也在工作(这个时候大家都是对等的);在你发呆或者玩乐的时候,别人却在学习(差距就是这时候产生的)。举个不好听的例子,有人30岁当上主管/大佬,有人30岁和23岁做着一样的工作,疲惫,迷茫,不知道啥时候才是出路。 12. 学习要主动,不能被动地等待别人把东西嚼碎了喂到你的嘴里,都是成年人了。 13. 永远不要只停留于想象层面,想象是美好的,如果你总是抱着“我要拿高薪”“我要学软件测试”“我不知道我行不行”“我不知道软件测试到底前景怎样(有人说好,有人说不好,一千个读者就有一千个哈姆雷特,世界上真的大多数事情都是这样的)”“我××××”,却光说不去做的话,这一切无异于空想,除了消耗时间,没有实质上的意义。英文有一个词“try to do”,试着去做,不管能不能行。当你开始做了,你想要的一切都会有了答案。 14. 软件测试并非不看年龄,不看学历的,并不是说年龄大,学历低转行就一定不会成功,你要是比别人优秀,不管什么时候都会成功,但是这样的难度太大,很多时候,你的学历就是一块“敲门砖”,没有这个,连面试都不一定会有。企业也会选择更加优秀的人。 15. 学习知识的时候的确是一个比较辛苦的过程,真的,它没有吃鸡,农药香,但是呢,当你有所收获或者有所成就感的时候,那你就会觉得一切的辛苦都是值得的(当然,你也要往一条正确的道路上去走,否则越走越远,南辕北辙的道理就不再多说)。 16. 不要觉得测试不如开发?一个好的测试工程师他的薪资,能力,经验未必就比开发差。但是你要知道,这世上没有最完美的职业,就拿大家觉得是“铁饭碗”的公务员来说,竞争真的太激烈,在大城市也未必是一个安稳又薪资高的工作。 17. 学习软件测试最重要的是实操,就是所谓的动手能力/项目经验,因为你去企业工作和在学校学习是完全不一样的,学校学习你把知识点背下来(应试教育),很多问题都能解决,但是去企业不是考察你的理论,而是要动手去完成一个个项目。 18. 不要一开始就怀疑自己,我不适合,我弄不明白,我是不是太差了等等,这些想法源于你不了解,(给自己一定的时间)当你找到窍门,所有的问题都会迎刃而解。 19. 培训班花几万块钱值吗?当然,对于绝大多数人都是值得的(有极个别报了培训班,上课和别人聊天,睡觉,玩游戏等消磨时光,不值,因为花了钱,什么都没得到),千万不能有我花了钱就买了一份工作的想法。 20. 别人有的高薪我能有吗?那么,别人付出多少,你能付出同等的吗? 所以付出和回报是成正比的,你付出多少就有多少回报,不论是没有入行还是已经入行的测试人都要去不断的学习,只有是自己变得足够强大才可以在自己的行业中一直走下去。
-
# Jmeter压测工具使用之HetuEngine测试 ## 测试场景  如图:使用jmeter同时向MRS集群内的两套HetuEngine计算集群进行10并发的压力测试,并将最后的测试结果统一 ## Jmeter配置 - 测试计划配置   - 线程组1的配置:  Hetu JDBC connection Configuration配置:  JDBC Request配置:  Precise Throughout Timer配置: 说明:使用Precise Throughout Timer做精准的压力测试  - 线程组2的配置 说明:主要是Hetu JDBC Connection Configuration和JDBC Request的变量配置,其余配置一致   ## 启动Jmeter并查看结果 启动jmeter可以查看总结果  分别登陆HetuEngine计算集群1以及HetuEngine计算集群2查看结果 HetuEngine计算集群1:  HetuEngine计算集群2:  备注:如果不能使用windows客户端来操作的话,可以在windows配置好测试计划,然后复制到linux端使用命令行的方式启动执行测试以及统计结果 启动任务命令: `sh /home/omm/jmeter/apache-jmeter-5.4.1/bin/jmeter -n -t /home/omm/jmeter/test_100.jmx -l /home/omm/jmeter/overall/out_100_02.jtl` 统计结果命令: `sh /home/omm/jmeter/apache-jmeter-5.4.1/bin/jmeter -g /home/omm/jmeter/overall/ out_100_02.jtl -o /home/omm/jmeter/report_100_02`
-
# RPA 实战:让小姐姐填满你的硬盘(上) > 某天,我无意逛到某个小网站,如果我不懂代码,想要网站上全部的妹子,我该怎么做?……幸好有她,她好我也好,她就是 RPA -- Robotic Process Automation,中文意思是机器人流程自动化,换句话说就是利用机器人技术来实现业务流程的自动化处理。 ## 环境安装 首先打开另一个小网站 -- [https://www.hwtelcloud.com/products/rpa](https://www.hwtelcloud.com/products/rpa),下载【设计器】,并进行使用激活;下载【执行器】,让程序自己动;此外还需下载浏览器驱动和安装浏览器插件。关于软件的下载安装等此处就不进行讲解,相信您能搞定!  本大狮发表文章时所用到的软件版本及环境如下: - WeAutomate Studio(2.14.0) - WeAutomate Assistant(2.14.0) - VM: python 3.8.5 64-bit - Windows Feature Experience Pack 421.16300.0.3 - Google Chrome 91.0.4472.124 64-bit  将近1000页的帮助文档在 WeAutomate Studio 安装目录下:`document/RPA_Robot_Development_Guide_zh_cn.pdf`  此外还有更多优质的课程尽在华为云学院: [https://ilearningx.huawei.com/portal/courses?q=ANTROBOT](https://ilearningx.huawei.com/portal/courses?q=ANTROBOT) ## “技术”解析 说到图片,我最先想到的是某度图片,之前通过使用 NodeJS 爬虫爬取过该网站搜索出来的图片,大概的流程如下: 1. 输入关键字,`//*[@id="kw"]`这里的 Input 标签就是我们关键字输入的位置。  2. 获取图片列表,当我们输入关键字并搜索的结果就呈现为页面的`//*[@id="imgid"]/div/ul/li[1]/div/a/img`,也就是 classname 为 `main_img` 的图片元素  3. 滚动窗口,当我们模拟鼠标滚动时,页面会加载更多的图片。  4. 图片下载,我们获取到每个图片元素的 `src` 属性,就是我们最终的图片下载地址。  那么整个流程下来,在 RPA 中我们需要用到哪些控件呢?首先我们要从网页获取图片,`打开网页`控件是第一个用到的;其次我们要获取网页的高度并进行滚动、获取页面图片元素及`src`属性,我们可以通过`执行 js 代码`控件来帮我们完成;此外,涉及的一些流程控制我们必须依赖分支、循环等控件;最后下载图片则通过`下载文件`控件实现。  ## 实施过程 RPA 的实施一般遵循下面的生命周期:  ### RPA 评估 首先 RPA 评估,针对此次我的这个“大胆”的想法,我的整个业务流程完成能够用自动化来实现,当然投资回报率(ROI)对我来说,完全只需投入少量的时间就能获取到海量的数据,理论上是非常划算的。本次实践不对 RPA 工具本身做任何评价,本着新手小白的学习态度,一款好用的强大的称手的 RPA 工具请按照自身的场景去选取,如同技术选型,对开发工具做一定的调研、体验才能更好的选择合适的工具。 ### RPA 设计 接着 RPA 设计,我们先梳理一下完整的业务流程,细粒度精确到每一个点,比如网页数据怎么获取、图片怎么下载等等,势必会涉及到一些逻辑,比如分支逻辑、循环逻辑;除此之外,我们需要明确每个操作的输入和输出;在实际工作中,我们可能还需形成具体的文档。  ### RPA 开发 简单梳理完流程之后,开始开发我的第一个 RPA 程序。尽管整个流程梳理起来非常简单,但实际开发的时候,由于对工具、编程语言基础等不熟练,我踩了一个又一个的坑,最终走出了结合 JS 代码以及 NodeJS 爬虫的思路来开发这个图片爬取的 RPA 程序。 - 1. 全局变量定义 由于本大狮功力不够,暂时没能实现打开网页之后动态获取跳转的链接,因此我直接使用的输入关键字搜索之后的 url 作为全局变量 url 的值,拼接 keyword 来实现结果页面图片的获取。 | 名称 | 类型 | 值 | 描述 | | --- | --- | --- | --- | | url | String | (根据实际情况填写) | baseurl,用于拼接 keyword 访问结果页 | | keyword | String | (根据实际情况填写) | 关键字,比如"性感美女"、“靓仔” | | height | String | 0 | 初始的窗口高度,用于缓存过程数据 | | num | Number | (根据实际情况填写) | 图片数量,暂未做精确处理,作为退出循环的条件 |  - 2. 打开网页 写得比较随意,中文在浏览器地址中可以做 url 编码处理,这里可以引入 python 模块哦!  - 3. 获取浏览器窗口高度 建议此操作前先调用控件让浏览器窗口最大化,然后通过 JS 代码获取浏览器窗口高度并赋值给 `height`,方便后面的滚动操作。`执行 JS 代码`控件是有返回值的,在代码中通过 `return` 可以返回指定内容。 ```js return document.body.offsetHeight; ```  - 4. 循环操作 此处模拟了 JS 的定时器方法,使用`While`来进行滚动操作的循环。假如我想获取 10k 张图片,第一次加载的结果可能才几十张,如果是人工操作的话,我需要不断滚动浏览器以加载获得更多的数据。那机器人是怎么自动化操作呢?我们给它设置一个延时操作,然后调用 JS 代码滚动浏览器,同时更新`height`: ```js let height=@{height}*2; window.scrollTo(0,height); return height; ```  - 5. 获取图片链接 同样的通过调用`执行 JS 代码`控件来获取图片的链接和数量,为图片下载和退出循环做准备。 ```js let arrs = document.querySelectorAll('.main_img'); let urls = [] for (let img of arrs){urls .push(img.src)} return urls; ```  - 6. 退出循环 比较预期的图片数量和实际的图片数量,如果图片够了,我们就退出循环,进行下一步操作。  - 7. 创建文件夹 这里的步骤非必须,根据实际情况取舍,我这里是简单的尝试并熟悉 RPA 工具;不过逻辑还不够严谨,可以优化的点实在是太多。  - 8. 遍历图片链接并下载 “没有什么问题是一个 for 循环不能解决的,如果有,那就两个”,此处能够直接进行循环是因为之前 JS 代码返回的值已经是 list 了,因此将 url 遍历出来调用下载文件控件就能直接下载。  至此,一个简单的图片爬取 RPA 程序已经开发完毕。 ### RPA 测试 如果是大型的项目,必然会经过单元测试、集成测试等全面的测试历练之后才会发布。而对于此次的 **RPA 图片爬取**小程序,我只做了简单的调试,理论上调试依旧属于开发阶段,严格来说需要模拟各种场景、各种系统和上下文进行正确性测试等,测试完成后才可以上线。 作为伪测试,我输入**华为美女** 100 张,结果程序给了我 130 张,XDM 你们说测试通过吗?  ### RPA 优化 毕竟是 Hello World 级别的程序,出自 HW 攻城狮之手,因此有很多地方需要完善,比如逻辑的严谨性、没有考虑边界、下载的文件名杂乱等。毕竟真实的项目如果是这么个水平,估计…… RPA 的优化可以从最优设计、从性能、从实际业务需求等方面去实施。当然,屏幕前的您一定有自己的优化思路,期待您与我分享! ## 小结 回到标题,咦,为什么是上篇,难道还有下篇?敬请期待吧!那么上篇讲了哪些知识点呢?首先是 RPA 环境搭建及入门,然后是 RPA 程序开发的套路,接着是网页元素处理、文件下载、如何调用 python 模块、如何调用 JS 等,最后是简单测试及优化建议。感谢阅读,希望能帮到您! 最后,附送几个G的学习资料: [https://ilearningx.huawei.com/portal/courses?q=ANTROBOT](https://ilearningx.huawei.com/portal/courses?q=ANTROBOT) **如果您对本文有任何意见,欢迎与我联系,公众号:[胡琦](https://gitee.com/hu-qi/cdn/blob/master/me/wechat-huqi.jpg), Wechat: [Hugi66](#)**
-
1 测试环境准备准备压测环境server端与client端Hi1822网口互连1.1 server端系统:CentOS Linux release 7.9.2009 (AltArch)网卡配置:enp6s0网口的ip地址设置为192.168.1.10启动Nginx服务,监听端口: listen 192.168.1.10:8066 1.2 client端系统:CentOS Linux release 7.6.1810 (AltArch)网卡配置:enp3s0网口的ip地址设置为192.168.1.101 使用性能测试工具wrk进行压测:./wrk -t64 -c1000 -d300s --latency http://192.168.1.10:80662 测试过程2.1 优化前server端安装鲲鹏性能分析工具登录 https://90.90.154.225:8086/user-management/#/login下发全景分析任务同时client端使用wrk工具进行压测:./wrk -t64 -c1000 -d300s --latency http://192.168.1.10:8066同时使用top工具观察:ksoftirqd进程是网卡软中断进程,操作系统上如果有多条这种进程出现并且长时间占用CPU时间(有多个100%或者高于70%的现象),就可以判断是操作系统已经出现网卡软中断异常。查看tuning-kit中断请求配置,发现了不合理配置:压测工具输出结果:Socket errors socket 错误的数量Requests/sec 每秒请求数量,也就是并发能力Latency 延迟情况及其分布 Requests/sec :76486.132.2 RSS网卡队列中断绑核优化(1)先关闭irqbalancesystemctl status irqbalance //查看irqbalance//systemctl disable irqbalance //关闭irqbalance//(2)中断绑核查询网卡enp6s0所属numa0: cat /sys/class/net/enp6s0/device/numa_nodelscpu查看cpu架构信息,NUMA 节点0 CPU:0-31查询中断号:cat /proc/interrupts | grep enp6s0 | awk -F ':' '{print $1}'根据中断号进行绑核亲和性设置策略的基本原则是:本地CPU优先设置,尽量避免跨NUMA访问。网卡队列中断绑0-23for i in `seq 616 631`; do cat /proc/irq/$i/smp_affinity; done然后下发全景分析任务,同时client端执行./wrk -t64 -c1000 -d300s --latency http://192.168.1.10:8066,进行压测过程中,使用top查看CPU占用率:wrk压测工具输出结果:Socket errors socket 错误的数量Requests/sec 每秒请求数量,也就是并发能力Latency 延迟情况及其分布 Requests/sec :96477.612.3 调整 RX queue 的大小ethtool -G enp6s0 rx 1024ethtool -G enp6s0 tx 1024下发全景分析任务,同时client端执行./wrk -t64 -c1000 -d300s --latency http://192.168.1.10:8066,进行压测过程中,使用top查看CPU占用率:wrk压测工具输出结果: Requests/sec :147806.382.4 RPS/XPS配置优化配置RPS或XPS的原则是:确保软中断处理CPU和硬中断处理CPU分离,并保证两者的处理CPU都属于相同的内存域中。原始RPS/XPS配置如下图:下发全景分析任务,同时client端执行./wrk -t64 -c1000 -d300s --latency http://192.168.1.10:8066,进行压测过程中,使用top查看CPU占用率:wrk压测工具输出结果:Requests/sec :148076.513 网卡调优数据总结
-
更了个新一直完成不了,求大佬
-
好望云PC SDK
-
对于很多测试人员或者了解过自动化测试的人而言,初见RPA,会觉得RPA与自动化测试很相似。都包含了避免重复的人工操作,能处理结构化数据和处理固定业务逻辑等。当然,自动化测试聚焦的范围,仅仅在将软件测试行为的自动化。RPA则是面向的更加复杂的,多个行业多个系统多个环境的自动化。RPA更加关注跨系统的能力,自动化测试通常更加聚集于某一个技术的系统,比如网页、桌面应用程序、APP等,如果你的软件是APP,那么使用的自动化测试技术,通常局限于APP之上。而RPA关注的是输入、过程及输出,自动化测试更加关注结果。我也看到现在很多RPA厂商,正在布局自动化测试这一块。相信未来,自动化测试将会是RPA的一个子集。自动化测试也会变得更加简单。
-
【功能模块】安防模块业务调测时,消息上报测试接口报500错误
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签