高校门户网站建设需要多少钱企业网站建设图片
2026/4/18 16:10:48 网站建设 项目流程
高校门户网站建设需要多少钱,企业网站建设图片,南京电商网站开发,企业网站托管概述在一些企业中#xff0c;各类业务系统非常丰富#xff0c;相互之间或对外提供很多的服务或接口这些服务或接口中#xff0c;有很多是需要强契约约束的#xff0c;服务的提供方、服务的使用方必须遵守相同契约这类服务最典型的就是RPC#xff0c;其中应用广泛的有Dubbo…概述在一些企业中各类业务系统非常丰富相互之间或对外提供很多的服务或接口这些服务或接口中有很多是需要强契约约束的服务的提供方、服务的使用方必须遵守相同契约这类服务最典型的就是RPC其中应用广泛的有Dubbo、gRPC等使用JMeter对这些RPC接口的测试可以自定义插件来实现由于Dubbo应用相对广泛本文主要针对Dubbo的接口测试插件开发与实现进行介绍需要掌握的基础知识Java基础技术像Java基础知识、面向对象、Maven等SwingJava基础的图形化技术就要用于JMeter组件的界面元件绘制JMeter常用组件包括使用和对应的类、方法比较典型的配置元件、取样器Dubbo要掌握Dubbo的原理、开发、部署及调用规则才能较好的进行JMeter插件的开发尤其是要了解****Dubbo泛化调用的编程。开发步骤1、开发配置元件Config Element主要配置Dubbo注册服务地址一般是Zookepper、Nacos等超时时间等一些通用配置继承AbstractConfigGui类在此类中实现一系列方法使用Swing绘制界面、并将界面输入框内容保存到JMeter全局数据具体如下getStaticLabel方法用于返回配置元件名称示例代码如下Overridepublic String getStaticLabel() {return Dubbo基础配置;}getLabelResource方法获取组件资源名称用于多语言可忽略示例代码如下Overridepublic String getLabelResource() {return this.getClass().getSimpleName();}configure方法将测试元件属性值设置回图形化组件示例代码如下Override public void configure(TestElement element) { super.configure(element); //将配置值设置回当前Swing组件 if (element instanceof ConfigTestElement) { ConfigTestElement configTestElement (ConfigTestElement) element; this.txtDubboAddress.setText(configTestElement.getPropertyAsString(DUBBO_ADDRESS_KEY)); this.txtNamespace.setText(configTestElement.getPropertyAsString(NAMESPACE_KEY)); this.txtGroup.setText(configTestElement.getPropertyAsString(GROUP_KEY)); this.txtProtocol.setText(configTestElement.getPropertyAsString(PROTOCOL_KEY)); this.txtTimeout.setText(configTestElement.getPropertyAsString(TIMEOUT_KEY)); } }createTestElement方法创建测试元件对象该对象属性值会在测试计划或线程组内共享示例代码如下Override public TestElement createTestElement() { //创建测试元件对象该对象的属性值会在测试计划或线程组内共享 ConfigTestElement configTestElement new ConfigTestElement(); //修改测试元件对象 modifyTestElement(configTestElement); return configTestElement; }modifyTestElement方法修改测试元件对象主要是将Swing组件输入的值保存到测试元件对象示例代码如下Override public void modifyTestElement(TestElement testElement) { super.configureTestElement(testElement); //将Swing组件输入的值保存到测试元件 testElement.setProperty(DUBBO_ADDRESS_KEY,this.txtDubboAddress.getText()); testElement.setProperty(NAMESPACE_KEY,this.txtNamespace.getText()); testElement.setProperty(GROUP_KEY,this.txtGroup.getText()); testElement.setProperty(PROTOCOL_KEY,this.txtProtocol.getText()); testElement.setProperty(TIMEOUT_KEY,this.txtTimeout.getText()); }clearGui方法清理图形化界面示例代码如下Override public void clearGui() { super.clearGui(); //设置图形化界面组件初始值 this.initGuiValues(); }2、开发取样器Sampler主要配置单个Dubbo接口测试用例的独特配置包括接口地址、请求参数、响应数据处理等分别继承自AbstractSampler、AbstractSamplerGui抽象类使用Swing绘制界面、并将界面输入框内容保存到JMeter全局数据重写父类AbstractSampler逻辑和方法定义与界面相关的取样器数据缓存Key示例代码如下/** * 服务接口属性Key用于与DubboSamplerGui共享输入的文本值 */ public static final String INTERFACE_KEY interface_key;sample方法执行取样器示例代码如下public class DubboSampler extends AbstractSampler{ //1、定义取样器返回对象 SampleResult sampleResult new SampleResult(); //2、设置取样器标题 sampleResult.setSampleLabel(this.getPropertyAsString(TestElement.name)); //3、开始取样 sampleResult.sampleStart(); //4、从GUI获取输入值获取从DubboSamplerGui传递过来的输入值 String inf this.getPropertyAsString(INTERFACE_KEY); //... //5、加工输入数据使用输入数据构造业务数据 DubboInvokeEntity dubboInvokeEntity new DubboInvokeEntity(); //... //6、执行或调用自定义的业务逻辑 Object result DubboInvokeUtil.invoke(dubboInvokeEntity); //7、将业务逻辑返回值设置到返回对象 sampleResult.setResponseData(JSON.toJSONString(result), StandardCharsets.UTF_8.name()); //8、结束并返回 sampleResult.setDataType(SampleResult.TEXT); //结束取样器 sampleResult.sampleEnd(); //标识为成功 sampleResult.setSuccessful(true); return sampleResult; }重写父类AbstractSamplerGui逻辑与方法定义Swing组件引用定义与界面相关的Swing组件可选示例代码如下/** * 接口名称文本框 */ private JTextField txtInterface; //...多个Swing组件可进行类似定义构造方法进行界面和默认值的初始化示例代码如下public DubboSamplerGui(){ super(); //初始化图形化界面 this.initGui(); //初始化图形化界面默认值 this.initGuiValues(); }getStaticLabel方法定义取样器名称示例代码如下Override public String getStaticLabel() { return Dubbo请求; }getLabelResource方法定义组件资源名称一般用于多语言资源使用默认实现示例代码如下Override public String getLabelResource() { return this.getClass().getSimpleName(); }configure方法配置方法将测试元件取样器缓存的属性值设置回图形化组件示例代码如下Override public void configure(TestElement element) { super.configure(element); if (element instanceof DubboSampler) { //将Sampler的数据回写GUI因为一个测试任务下有多个GUI使用不同的Sampler DubboSampler sampler (DubboSampler) element; this.txtInterface.setText(sampler.getPropertyAsString(DubboSampler.INTERFACE_KEY)); //... } }createTestElement方法创建测试元件对象该对象的属性值会在测试计划或线程组内共享示例代码如下Override public TestElement createTestElement() { //创建测试元件对象该对象的属性值会在测试计划或线程组内共享 DubboSampler dubboSampler new DubboSampler(); //修改测试元件对象 this.modifyTestElement(dubboSampler); return dubboSampler; }modifyTestElement方法修改测试元件对象主要是将Swing组件输入的值保存到测试对象示例代码如下Override public void modifyTestElement(TestElement testElement) { //配置取样器对象 super.configureTestElement(testElement); if (testElement instanceof DubboSampler) { DubboSampler dubboSampler (DubboSampler) testElement; //将Swing组件输入的值保存到测试元件 dubboSampler.setProperty(DubboSampler.INTERFACE_KEY,this.txtInterface.getText()); //... } }clearGui方法清理图形化界面示例代码如下Override public void clearGui() { super.clearGui(); //设置图形化界面组件初始值 this.initGuiValues(); }initGui方法自定义方法主要是使用Swing组织取样器的界面元素示例代码如下private void initGui(){ //使用面板等对构造第1步定义的Swing组件进行合理布局 //... }initGuiValues方法初始化图形化界面Swing输入组件默认值示例代码如下private void initGuiValues() { this.txtInterface.setText(com.lemon.demo.dubbo.inf.service.IUserService); //... }3、在JMeter中使用将开发项目打包的.jar包拷贝到JMeter的lib/ext目录重新启动JMeter在配置元件、取样器中将会发现Dubb基础配置、Dubbo请求两个插件效果总体效果配置元件效果取样器效果最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈这些资料希望能给你前进的路上带来帮助。​视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询