每条规则都包含一个选择器(例如:BODY,P等)和写在花括号里的声明,这些声明通常是由几组用分号分隔的属性和值组成。
有6种合法的选择器类别,即:HTML标记、具有上下文关系的HTML标记、用户定义的类、用户定义的ID、虚类、虚元素。
1.HTML标记
例如:H1{text-align:centerfont-family:楷体-gb2312},H1,H2,H3{color:#ff0000}
2.具有上下文关系的HTML标记
例如:H1 B{color:red},这表示只有位于标记元素内的 标记符说明的内容显示为红色,其它标记符所说明的元素不具有该属性。这种上下文关系可以多层嵌套。
3.用户定义的类要想将一个类包括到样式定义中,可将一个句点和一个类名添加到选择器后,即:选择器.类名{属性:值;……}
可以使用任何名称命名类,例如:若想在网页使用 ,并使每处文本具有不同的颜色,则可进行如下定义:H2.colo-red{color:red}H2.color-blue{color:blue}
然后在网页中需要使用CLASS属性的地方引用这些类,例如:第一章 HTML,第二章 CSS技术〈/H2〉如果使用了 标记符,但未使用CLASS属性,则不会应用所定义的样式。
特别地,还可以定义应用于所有标记符的类,此时,直接用句点后跟类名即可,例如:.red{color:red}然后在所有需要引用该类的标记符中使用CLASS属性。
4.用户定义的ID所谓ID,就是相当于HTML文档中的样式的“身份证”,以保证其在一个HTML文档中具有唯一可用的值。这给使用JAVAScript等脚本编写语言的 应用带来了方便。要将一个ID包括在样式定义中,需要“#”号作为ID名称的前缀,格式如下:#ID名字{属性:值}
定义了ID样式后,则可通过在标记符内使用ID属性来引用该样式。例如:有定义#red{color:red},则可在若干不同标记符中使用。
5.虚类和虚元素虚类也称伪类(Peeudo-class),它可以区别开不同种类的元素。虚元素(Pseudo-element)指元素的一部分,如段落的第一个字母和首行效果(first-letter和first-line)。
虚类和虚元素只可以用在CSS的选择器中,而不能出现在HTML的源代码中,即不能用CLASS或ID来调用。它们只能在特定条件下被浏览器所识别。
伪类中最常见的就是锚伪类。锚伪类可以指定标记符以不同方式显示链接,即访问过的(visited)、未访问过的(link)、激活的(active)和鼠标指向的(hover)几种链接状态。例如可以使用下列方式更改超链接的显示方式:A:link {text-decoration:nonecolor:#800000},A:visited {text-decoration:nonecolor:#800000},A:active {text-decortion:none},A:hover {text-decoration:underlinecolor:blue}
CS/CSS架构应用的软件性能测试模型分析作者:夏海涛 出处:测试员杂志
1. CS/CSS系统架构的基本概念 1.1系统架构定义
虽然B/S结构、J2EE架构愈来愈成为流行模式,但基于传统的C/S结构的应用程序还广泛地应用于各种行业。尤其是金融行业中的商业银行柜面-核心帐务系统等。一方面由于传统商业银行一般都有大量的字符终端等需要复用的设备,一方面也是因为他们存在大量密集的对实时性要求很高的高柜业务,使用传统的基于C/S结构或者C/S/S结构的应用效率更有保证。
C/S结构即CLIENT/SERVER结构。传统的C/S结构一般分为两层:客户端和服务器端。该结构的基本工作原理是,客户程序向数据服务器发送SQL请求,服务器返回数据和结果。客户端负责实现用户接口功能,同时封装了部分应用逻辑。服务器端的数据库服务器主要提供数据存储功能,也通过触发器和存储过程提供部分应用逻辑。
C/S/S结构即客户/应用服务器/数据库服务器三层结构,中间增加了应用服务器,通常实现应用逻辑,是连接客户与数据库服务器的桥梁。它响应用户发来的请求执行某种业务任务,并与数据库服务器打交道,技术实现上通常选用中间件产品,如BEA公司的TUXEDO和IBM公司的CICS等。(事实上J2EE架构的应用也属于这种三层或多层结构,这里不包括。)
三层或多层C/S结构与两层C/S结构相比,它的优势主要表现在:安全性加强、效率提高、易于维护、可伸缩性、可共享性、开放性好等。 1.2系统架构示意图
1.3CS/CSS系统架构中性能测试的特点 1.3.1CS/CSS系统架构的性能影响因素
由于CS/CSS系统的以下特性,测试工程师对一个CS/CSS系统实施性能测试具有很大的难度: *整个系统的各个部分使用多种操作系统,性能上有差别;
*整个系统架构的各个环节上使用多种数据库,同样在性能上有差别;
*应用是多个,分属多个种类,分布在不同设备上,包括自行开发的应用、第三方的应用; *系统中的设备、组件通过不同协议进行连接、通讯;
*系统的内部接口多,性能瓶颈多;而系统的整体性能往往取决于最差的部分;需要分别测试和联合测试
*系统的性能指标不光同应用系统架构有关,还和具体行业应用的业务模式有关; *采用此架构的行业应用往往是一个7×24小时系统;
*采用此架构的行业应用可能高柜业务多,这样会影响对性能度量项的选取和转换; *各个环节基本上以交换数据报文的方式通信,其格式经常会比较复杂。
因此这样的系统对于对测试工程师的知识的深度和广度都是一个考验。对于这样的系统,到底如何使用什么样的测试策略、如何分析测试需求、如何选取性能度量项的转换计算模型、如何确定测试内容和轮次、如何设计性能测试案例等等以及规划和实施性能测试中的其它诸多问题,都需要遵循一个系统的方法来解决。
1.3.2CS/CSS系统架构中性能测试的基本策略 1. 确定好测试工作范围
首先可以分析压力测试中最容易出现瓶颈的地方,从而有目的地调整测试策略或测试环境,使压力测试结果真实地反映出软件的性能。例如,服务器的硬件限制、数据库的访问性能设置等常常会成为制约软件性能的重要因素,但这些因素显然不是用户最关心的,我们在测试之前就要通过一些设置把这些因素的影响调至最低。
另外,用户更关心整个系统中哪个环节的性能情况也会影响工作范围。如有的环节是全新系统,而有的环节已经是成熟系统只是稍有改动,这样可能全新系统的局部性能测试就需要系统和全面一些。 2. 分析好客户的性能测试需求
客户是已经明确提出了性能指标,还是只提供了用户使用方式和历史交易流量数据,需要我们自己进行性能基准的计算?性能测试的目的是验证系统性能还是想确定目标系统的理想配置?是否还要使用测试结果预测在不同机型的处理能力?是否要求在性能测试各个轮次中安排性能调优过程等等问题都需要有针对性的解答。
3. 要作好性能测试的计划和方案
测试计划和方案中要注意测试需求分析阶段提出的问题的解决。 4. 确定的测试通过准则、性能测试的计划、结果要获得客户的认可
要和客户确认,系统的性能指标达标的标准是什么;对于性能测试中各个部分和步骤的计划和结果,甚至是性能测试过程,都要根据其重要程度,决定是否需要客户进行确认和签字。获得客户的认可是最重要的。
1.3.3CS/CSS系统中性能测量与性能探测 性能测量
1. 在性能测试开始前必须认真规划性能测量:
软件性能测量技术范围很广。可以包括日志、事件计数、事件持续时间、采样等性能测量技术。 *确定性能测量的策略:我们要测试什么? *规划性能测试中使用什么样的测量工具。