wap网站psd,wordpress html页面模板,深圳口碑最好的装修公司排名,xml网站地图在线生成工具最近在WEB端测试工作中陷入了瓶颈#xff0c;单纯的手动功能测试在没有成熟的代码规范之前还是很容易坑的#xff0c;WEB自动化测试一时半会还没有什么进展#xff0c;所以决定先学习一下网站用的MVC架构#xff0c;跟着教程写了一个小网站#xff0c;大概也找到了WEB测试… 最近在WEB端测试工作中陷入了瓶颈单纯的手动功能测试在没有成熟的代码规范之前还是很容易坑的WEB自动化测试一时半会还没有什么进展所以决定先学习一下网站用的MVC架构跟着教程写了一个小网站大概也找到了WEB测试工作的几个突破口。 MVC即为按照分层解耦的思想将网站结构分成了Model模型-View视图-Controller控制器三层架构三层架构的职责如下 Model层是应用程序中用于处理应用程序数据逻辑的部分通常模型对象负责在数据库中存取数据简单来说就是在Model层进行业务逻辑的处理 View层是应用程序中处理数据显示的部分通常视图是依据模型数据创建的简单来说View层就是显示数据以及发送请求 Controller层应用程序中处理用户交互的部分。通常控制器负责从视图读取数据控制用户输入并向模型发送数据简单来说Controller层用于接收View层发送的请求收到请求后调用对应Model层进行业务处理然后将处理后的结果返回给View层。 M-V-C三层的关系大概可以如下图所示 根据签下来的网站代码调试了之后发现MVC的实现原理还是很有意思的 我们以访问http://localhost:1000/EvectionExpensesManage/EvectionExpensesApply这个为例来理解MVC的实现原理调试程序后的结论如下 View层接到用户请求调用EvectionExpensesManageController类下的EvectionExpensesApply方法根据业务立即得到结果最后调用对应视图来显示结果。 那么我们仔细对比一下URL的后缀和控制器还有方法的区别会发现很有意思的一个现象 /EvectionExpensesManage/EvectionExpensesApply 调用EvectionExpensesManageController控制器下的EvectionExpensesApply方法 也就是说MVC架构下URL的构成即为对应的控制器类名去掉Controller/调用的方法。 那么如果方法有入参怎么办我们再来看另一个URL http://localhost:10344/AbnormalPunch/ApplySubmit?ID13244EmployeeID1D2DE5AD8BC74E2A9CA70DE3567472EB 显然这个URL即为调用的AbnormalPunchController控制器下的ApplySubmit方法定位到该方法的代码为 public int ApplySubmit(string id, string EmployeeID)
{return _AbnormalPunchBLL.ApplySubmit(Convert.ToInt32(id), EmployeeID, Session[UserID].ToString());
} 再对比一下URL的构成方式我们很容易就能得到结论 ID、EmployeeID为参数控制器调用的方法和参数之间用?分隔多个参数之间用分隔 即调用AbnormalPunchController类中的ApplySubmit方法入参为ID和EmployeeID 当然/home/index 表示网站首页可以省略。 在了解了MVC的基本架构以后回过头来反思以前的WEB测试工作一般就是通过UI/控件/业务功能/跳转/导航/数据交互几个方面进行的在了解了MVC架构以后发现可以从以下几个方面突破 M-V-C三层架构的交互引入接口测试验证交互过程中的数据传输保证版本质量 FireFox浏览器下的FireBug插件、Chrome浏览器自带的开发者工具都可以很轻松的看到控制器返回给视图的数据可以发现一些只在页面上测试很容易漏掉的问题。 我之前就遇到过改了一句sql引发了其他页面的bug或者改了一个查询条件影响到其他查询条件的情况现在回想起来回归测试没有做好是一方面但是如果当时测试的时候关注了返回信息和影响的页面这个问题就很容易避免了。 根据URL的构成方式出现问题时可以快速定位到出现问题的部分提高定位效率 自己一直有在尝试说尽可能的将bug准确定到代码上API或WEBSERVICE端的代码自己也能定位了但是在真正学习MVC架构之前都是像无头苍蝇一样在VS如此强大的IDE下勉强行得通换个IDE怕是早就砸键盘了。 初步考虑安全性比如URL中是否有用户的重要信息是否需要加密处理 比如部分参数可以在URL中屏蔽掉或者进行加密处理展示在URL上如果明文进行处理很有可能会造成信息泄露。 既然自己了解了MVC的架构下一步或许可能会考虑玩一下单元测试吧23333333 转载于:https://www.cnblogs.com/rd-ddddd/p/6959232.html