C# winform 窗体接收命令行参数自动登录进行系统,模拟600个WCF客户端的并发压力测试

简介:

我们想要达到的目的是模拟600个客户端的消息提醒功能,当然我们没有600个电脑可以拿来测试,我们只有4-5台电脑可以用来测试,那我们就想办法在一个电脑上执行100来个客户端,用不通的帐户登录,模拟600个并发时的情况.

  现在遇到的问题:

  1:一个个登录,每个电脑上登录100来个用户是很繁琐的事情,人都会眼花缭乱。

  2:在测试过程中往往会发现一些问题,这时候又需要重新部署服务器端,又要部署客户端,那是很要命的事情。

  3:随时想测试程序性能的时候,不需要别人的协助,只要自己一个人是否可以顺利进行测试,又轻松又快的方式是否可以?总不能要求别人总加班,靠自己。



解决问题的思路:

 1:先把数据库里的用户名密码,都修改为有规律的密码,由于我们用的是测试数据库,所以密码是可以随便修改的,我们编写一段程序让系统中所有的用户的密码与用户名相同,由于密码在数据库里是加密的,所以需要用程序脚本来设置。

 2:在设置密码的同时,我们把自动运行的DOS脚本指令也获取了,那不是一箭双雕了不是,那我们就编写一段程序来实现一下这2个任务。

View Code

 得到的DOS批量处理的结果如下RunTest.bat,为了节省篇幅就截取一部份:

View Code

 3:调试winform程序,让程序能接受命令行参数,参考代码如下:

View Code

 4:配置项目工程属性,模拟输入命令行参数如下图:

  5:把程序配置为能自动登录的状态如下效果图:

    也可以通过手工修改配置文件的方式把  Config.xml 里的

<!-- 是否自动登录,默认不自动登录会好一些 -->
<add key="AutoLogOn"value="True" /> 也可以达到相同的效果.


  6:万事大吉,只要双击 RunTest.bat,瞬间几百个客户端就自动登录,能模拟多用户并发压力测试了,将来做其它项目还可以反复使用,不用依靠别人自己一个人就可以测试了,省心省事了。


   开发软件很多功能都很简单,但是一个每个功能实现好都需要几个小时时间,例如这个自动登录进行压力测试的程序也编写调试了4个小时左右, 一个软件系统往往需要成白上千的功能点,前后编写花费的时间就会很长了,需要投入很密集的劳动力.


  例如我想购买一个软件,软件只有一个要求"姓李的周三不能登录,姓白的周日不能登录",就这么一个软件,你需要多久能开发好? 其实他没说这个软件背后的100个需求,当你开发好了后,客户会说,怎么没有权限管理功能? 怎么没有角色管理功能? 怎么没设置密码功能? 怎么没锁定帐户功能??????????


  就像是我想购买一个进销存,需要分级管理分级授权,你要开价多少? 其实他想要用友软件的所有功能,同时也想要金蝶的所有的优点之上要结合他们自己在用的系统优点,再加一个分级管理分级授权的功能,所以我们做任何软件系统,都需要把那些公用的,基础的1000个功能点都做好了,再去开发第1001个功能,才好满足客户的需要。





本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1197313,如需转载请自行联系原作者
相关文章
|
7月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
4284 123
|
12月前
|
SQL 数据库 数据安全/隐私保护
C#wpf学习卡后台管理系统
C#wpf学习卡后台管理系统
288 32
|
11月前
|
存储 监控 算法
基于 C# 的局域网计算机监控系统文件变更实时监测算法设计与实现研究
本文介绍了一种基于C#语言的局域网文件变更监控算法,通过事件驱动与批处理机制结合,实现高效、低负载的文件系统实时监控。核心内容涵盖监控机制选择(如事件触发机制)、数据结构设计(如监控文件列表、事件队列)及批处理优化策略。文章详细解析了C#实现的核心代码,并提出性能优化与可靠性保障措施,包括批量处理、事件过滤和异步处理等技术。最后,探讨了该算法在企业数据安全监控、文件同步备份等场景的应用潜力,以及未来向智能化扩展的方向,如文件内容分析、智能告警机制和分布式监控架构。
264 3
|
JSON C# 数据格式
【Azure Function】C#独立工作模式下参数类型 ServiceBusReceivedMessage 无法正常工作
Cannot convert input parameter 'message' to type 'Azure.Messaging.ServiceBus.ServiceBusReceivedMessage' from type 'System.String'.
295 73
|
设计模式 IDE API
C# 一分钟浅谈:GraphQL 客户端调用
本文介绍了如何在C#中调用GraphQL API,涵盖基本步骤、常见问题及解决方案。首先,通过安装`GraphQL.Client`库并创建客户端实例,连接到GraphQL服务器。接着,展示了如何编写查询和突变,以及处理查询语法错误、变量类型不匹配等常见问题。最后,通过具体案例(如管理用户和订单)演示了如何在实际项目中应用这些技术,帮助开发者更高效地利用GraphQL。
285 38
C# 一分钟浅谈:GraphQL 客户端调用
|
设计模式 API 数据处理
C# 一分钟浅谈:GraphQL 客户端调用
本文介绍了如何在C#中使用`GraphQL.Client`库调用GraphQL API,涵盖基本查询、变量使用、批量请求等内容,并详细说明了常见问题及其解决方法,帮助开发者高效利用GraphQL的强大功能。
340 57
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
814 64
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
500 0
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
261 11
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
265 10

热门文章

最新文章