Java 中文官方教程 2022 版(十二)(4)

简介: Java 中文官方教程 2022 版(十二)

Java 中文官方教程 2022 版(十二)(3)https://developer.aliyun.com/article/1486359

设置 Cookies

以下代码片段显示了CookieAccessor类的setCookieUsingCookieHandler方法:

public void setCookieUsingCookieHandler() {
    try {
        // instantiate CookieManager
        CookieManager manager = new CookieManager();
        CookieHandler.setDefault(manager);
        CookieStore cookieJar =  manager.getCookieStore();
        // create cookie
        HttpCookie cookie = new HttpCookie("UserName", "John Doe");
        // add cookie to CookieStore for a
        // particular URL
        URL url = new URL("http://host.example.com");
        cookieJar.add(url.toURI(), cookie);
        System.out.println("Added cookie using cookie handler");
    } catch(Exception e) {
        System.out.println("Unable to set cookie using CookieHandler");
        e.printStackTrace();
    }
}

如检索 Cookies 所示,CookieManager类是管理 Cookie 的主要入口点。创建CookieManager类的实例,并将该实例设置为默认的CookieHandler

使用所需信息创建HttpCookie。在我们的示例中,我们创建了一个将UserName设置为John Doe的新HttpCookie

接下来,将 Cookie 添加到底层的 Cookie 存储中。

运行 Cookie 小程序示例

要访问 Cookies,您必须对您的 RIA JAR 文件进行签名,并请求在安全沙箱之外运行的权限。请参阅jarsigner工具的文档,了解如何对 JAR 文件进行签名。有关请求权限的信息,请参阅富互联网应用程序中的安全性。

下载源代码以进一步实验Cookie Applet示例。

丰富互联网应用程序中的安全性

原文:docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/security.html

丰富互联网应用程序(RIAs)背后的安全模型旨在保护用户免受恶意互联网应用程序的侵害。本主题讨论了适用于小程序和 Java Web Start 应用程序的安全方面。有关更多信息,请参阅以下主题:

  • 小程序的能力和限制
  • Java Web Start 和安全性

RIAs 可以限制在 Java 安全沙箱中运行,或请求权限访问安全沙箱之外的资源。第一次启动 RIA 时,用户将被提示是否允许运行。显示的对话框提供有关签名者证书的信息,并指示 RIA 是否请求在安全沙箱之外运行的权限。用户随后可以做出知情决定是否运行应用程序。

请遵循以下准则来帮助保护您的 RIAs。

  • 使用来自认可的证书颁发机构的证书对 RIA 的 JAR 文件进行签名。有关更多信息,请参阅 签署和验证 JAR 文件 主题。
  • 如果 RIA 需要访问安全沙箱之外的资源,请在 RIA 的 JNLP 文件中指定 all-permissions 元素。否则,让 RIA 默认在安全沙箱中运行。以下代码片段显示了 RIA 的 JNLP 文件中的 all-permissions 元素。
<security>
   <all-permissions/>
</security>
  • 如果使用 applet 标签,请参阅 使用 applet 标签部署 以获取有关设置权限级别的信息。
  • 一个 JNLP 文件只能包含由相同证书签名的 JAR 文件。如果您有使用不同证书签名的 JAR 文件,请在单独的 JNLP 文件中指定它们。在 RIA 的主 JNLP 文件中,使用 component-desc 元素来包含其他 JNLP 文件作为组件扩展。有关详细信息,请参阅 JNLP 文件的结构。
  • 对于 RIAs 的安全模型不允许来自网页的 JavaScript 代码调用签名 JAR 文件中的安全敏感代码,除非您明确启用此功能。在签名的 JAR 文件中,将您希望 JavaScript 代码能够调用的代码部分包装在 AccessController.doPrivileged 块中。这样,当执行 doPrivileged 代码块中的代码时,JavaScript 代码可以以提升的权限运行。
  • 尽量避免在 RIA 中混合特权和沙箱组件,因为它们可能会引发有关混合代码的安全警告。有关更多信息,请参阅 混合特权代码和沙箱代码
  • 在 JAR 文件清单中包含PermissionsCodebase属性,以确保您的 RIA 请求仅限于您指定的权限,并且该 RIA 是从正确的位置访问的。查看用于安全性的 JAR 文件清单属性获取更多信息。
  • JAR 文件清单属性使您能够限制对您的 RIA 的访问,并有助于确保您的代码不被篡改。查看使用清单属性增强安全性获取所有可用的 JAR 文件清单属性的信息。

保护富互联网应用程序的指南

docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/devGuidelines.html

以下指南提供了您可以采取的步骤,以减少您向用户提供的富互联网应用程序(RIA)的漏洞性。

  • 遵循安全编码指南
  • 使用最新版本的 JRE 进行测试
  • 包含清单属性
  • 使用已签名的 JNLP 文件
  • 签名和时间戳 JAR 文件
  • 使用 HTTPS 协议
  • 避免本地 RIA

遵循安全编码指南

遵循Java 编程语言安全编码指南中的建议。第 4 节“可访问性和可扩展性”描述了如何限制对类和包的访问权限,从而降低代码的漏洞性。

JavaScript 代码被认为是不安全的,并且默认情况下受到安全沙箱的限制。最小化您的 RIA 与 JavaScript 代码之间的交互。谨慎使用AccessController.doPrivileged块,因为它允许从任何 HTML 页面或 JavaScript 代码访问。

使用最新版本的 JRE 进行测试

确保您的 RIA 在最新的安全版本的 JRE 上运行。Java 平台支持 RIA 指定运行 RIA 所需的 Java 版本的能力,然而,要求用户维护多个 JRE 版本,尤其是旧的、不安全的版本,对用户来说是一个安全风险。

RIA 的一个好处是更新版本的 RIA 会自动下载到用户的系统中。测试您的 RIA 与每个 JRE 更新版本,并确保其正常工作。如果需要更改,请在服务器上更新您的 RIA,以便用户可以安装最新的 JRE 并仍然运行 RIA。

包含清单属性

向 JAR 文件清单添加属性,描述 RIA 的属性。与 JNLP 文件或applet标记中的值进行比较,以验证运行正确的代码。

当您的 RIA 不需要超出安全沙箱的访问权限时,请请求沙箱权限。Java 沙箱为用户提供了额外的保护,如果用户不理解为什么需要无限制访问其系统,则可能不运行特权应用程序。

清单属性还可用于标识可以访问您的 RIA 的位置。这包括 JavaScript 代码可以调用您的 RIA 的位置,以及可以启动您的 RIA 的 JNLP 文件或 applet 标记的位置。有关可用的清单属性的信息,请参阅使用清单属性增强安全性。

使用已签名的 JNLP 文件

如果您的 RIA 需要访问非安全系统属性或 JVM 参数,请使用已签名的 JNLP。如果需要外部和内部 JNLP 文件之间的某种变化,请使用 JNLP 模板。查看 已签名的 JNLP 文件 了解信息。

要访问非安全系统属性或 JVM 参数,请按照 设置受信任参数和安全属性 中描述的在 JNLP 文件中包含属性或参数。

对 JAR 文件进行签名和时间戳

从受信任的证书颁发机构获取代码签名证书,并用它来签署您的 RIA 的 JAR 文件。仅部署使用有效证书签名的 RIA 给用户。

当您对 JAR 文件进行签名时,也要对签名进行时间戳。时间戳验证证书在签署 JAR 时是有效的,因此当证书过期时,RIA 不会自动被阻止。查看 签署 JAR 文件 了解有关签署和时间戳的信息。

自签名和未签名的 RIA 被视为不安全,并且除非设置例外站点列表或部署规则集以允许特定应用程序运行,否则不允许运行。但是,自签名对于测试目的可能是有用的。要使用您的自签名 RIA 进行测试,您可以将自签名证书导入到受信任的密钥库中。

使用 HTTPS 协议

使用 HTTPS 协议为用户获取您的 RIA 的 Web 服务器。HTTPS 协议是加密的,并由服务器验证,使任何人更难篡改您的 RIA。

避免本地的 RIA

本地的 RIA 不适用于生产环境。为确保用户运行您打算让他们运行的代码,请将您的 RIA 托管在应用程序服务器上。

为了测试,建议使用 Web 服务器。另一个选项是将您的应用程序添加到例外站点列表中,在 Java 控制面板的安全选项卡中进行管理。

问题和练习:更多关于富互联网应用程序的内容

原文:docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/QandE/questions.html

问题

  1. 真或假:富互联网应用程序(RIAs)可以通过在属性名称前加上"jnlp."来设置安全属性。
  2. 真或假:只有签名的富互联网应用程序(RIAs)才能使用 JNLP API 访问客户端上的文件。

练习

  1. 在以下的 JNLP 文件中,添加一个名为jnlp.foo的安全属性,并将其值设置为true
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Dynamic Tree Demo</title>
        <vendor>Dynamic Team</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href=
            "http://java.sun.com/products/autodl/j2se" />
        <jar href="DynamicTreeDemo.jar" main="true" />
    </resources>
    <applet-desc 
       name="Dynamic Tree Demo Applet"
       main-class="components.DynamicTreeApplet"
       width="300"
       height="300">
     </applet-desc>
     <update check="background"/>
</jnlp>  

检查你的答案。

课程:深入部署

原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/index.html

富互联网应用程序(RIA)部署涉及各种技术和工具,如 Java 网络启动协议(JNLP)、部署工具包、pack200、jarsigner 等。本课程探讨了这些技术和工具如何帮助开发人员部署 RIA(小程序和 Java Web 启动应用程序)。

参与 RIA 部署的主要组件如下:

  • RIA 将部署在其中的 HTML 页面
  • RIA 的 JNLP 文件
  • 包含 RIA 类文件和资源的 JAR 文件

这些组件在后续主题中会提到。

用户接受 RIA

原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/userAcceptance.html

为了安全起见,在首次启动 RIA 之前,用户会被提示是否允许运行 RIA,即使应用程序已签名或不需要超出安全沙箱的访问权限。提示包括以下信息,取决于正在运行的 RIA:

  • RIA 的名称,或者通知应用程序未签名。
  • 如果应用程序使用来自受信任机构颁发的证书进行签名,则会显示有关发布者的信息。如果证书已过期,则会包含警告。如果应用程序是自签名的,则发布者显示为 UNKNOWN。
  • 如果证书已过期、被吊销或无法检查吊销状态,则会收到警告。
  • 应用程序访问的位置。
  • 应用程序所需的访问级别。有限访问将应用程序限制在安全沙箱中,无限制访问将使应用程序能够访问用户系统上的资源。
  • 如果建议的属性不存在,则会警告缺少 JAR 文件清单属性。
  • 对于未签名或自签名的应用程序,用户必须选择接受应用程序的复选框。
  • 在某些情况下,有选择不再显示提示的选项。

有关提示的描述,请参阅当我看到 Java 的安全提示时应该怎么做?

如果用户运行的 JRE 版本过时,他们也会收到警告,并有机会在运行应用程序之前更新到最新版本。用户还可以选择使用系统上的 JRE 运行,或者阻止应用程序运行。

Java 控制面板中的安全级别设置确定用户是否有机会运行 RIA。默认设置为高,会提示用户是否允许运行使用有效证书签名并在主 JAR 文件的清单中包含 Permissions 属性的应用程序。如果无法检查应用程序的吊销状态,则用户还可以在用户的许可下运行应用程序。

对 RIA 进行签名为用户提供了一定程度的信任。在准备应用程序部署时,请考虑以下事项:

  • 最佳用户体验是由使用受认可证书颁发机构颁发的证书签名的应用程序提供的。
  • 除非已创建例外站点列表或部署规则集以明确允许应用程序运行,否则不允许运行自签名和未签名的应用程序。
  • 签名应用程序可以是特权应用程序或沙箱应用程序。特权应用程序可以无限制地访问用户系统上的资源。沙箱应用程序受限于 Java 安全沙箱。未签名应用程序受限于沙箱。

部署工具包

原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html

部署工具包脚本是一组 JavaScript 函数,可以帮助开发人员在各种浏览器和操作系统配置中一致地部署丰富的互联网应用程序(RIA)。部署工具包脚本评估底层浏览器和操作系统,并使用正确的 HTML 部署 RIA。此脚本还可以确保客户端计算机上存在所需版本的 Java 运行时环境(JRE)软件。部署工具包脚本是在 Java 平台标准版 6 更新 10 发布中引入的。

部署工具包脚本位置

部署工具包脚本位于以下网址:

  • **http:**//www.java.com/js/deployJava.js(见 note)。
  • **https:**//www.java.com/js/deployJava.js – 在安全页面部署您的小程序时,请使用来自此安全位置的部署工具包脚本,以避免页面加载时出现混合内容警告。

注意: **http:**//www.java.com/js/deployJava.js 网址正在逐步淘汰。请使用 **https:**//www.java.com/js/deployJava.js 网址启动所有应用程序。


此位置的 JavaScript 代码已经被最小化,以便快速加载。您可以在https://www.java.com/js/deployJava.txt查看带有相关注释块的 JavaScript 代码的可读版本。


注意: 客户端浏览器应启用 JavaScript 解释器,以便部署工具包脚本能够正确运行并部署您的 RIA。


部署小程序

原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/runAppletFunction.html

你可以通过使用部署工具包脚本的runApplet函数来部署小程序。runApplet函数确保客户端上存在所需的最低版本的 Java 运行环境(JRE)软件,然后运行小程序。runApplet函数生成一个带有提供信息的 HTML 标签。


注意: 根据浏览器类型,当尝试查看网页源代码时,可能无法查看部署工具包脚本生成的 HTML。要查看生成的 HTML,请尝试在加载后保存 HTML 页面,或使用类似 Firebug(Mozilla Firefox 附加组件)的工具。


你可以通过指定部署选项作为标签的属性和参数来部署小程序。你也可以在 Java 网络启动协议(JNLP)文件中指定部署选项以利用高级功能。有关此协议的更多信息,请参阅 Java 网络启动协议主题。


注意:

如果客户端没有所需的 JRE 软件的最低版本,部署工具包脚本会将浏览器重定向到http://www.java.com,以允许用户下载最新的 JRE 软件。在某些平台上,用户可能在查看包含小程序的网页之前被重定向。


runApplet函数的参数取决于是否使用 JNLP。通过 JNLP 部署的小程序只能在客户端机器上存在下一代 Java 插件软件时运行(下一代 Java 插件软件是在 Java 平台标准版 6 更新 10 发布中引入的)。

下一节将展示如何在将显示小程序的 HTML 页面中使用runApplet函数。描述了以下使用场景:

  • 作为属性和参数名称值对指定部署选项
  • 使用jnlp_href参数在 JNLP 文件中指定部署选项
  • 指定属性和参数名称值对以及 JNLP 文件(使小程序能够在旧版和下一代 Java 插件软件上运行)

函数签名: runApplet: function(attributes, parameters, minimumVersion)

参数:

  • attributes – 生成的标签的属性的名称和值
  • parameters – 生成的标签中标签的名称和值
  • minimumVersion – 运行此小程序所需的 JRE 软件的最低版本
  • 用法:

    • 作为属性和参数名称值对指定部署选项
      作为属性名称值对传递的属性和参数将被写入生成的标签中的属性和嵌套的标签中。以这种方式部署的小程序可以通过旧版 Java 插件软件运行。
      // launch the Java 2D applet on JRE version 1.6.0
      // or higher with one parameter (fontSize)
      <script src=
          "https://www.java.com/js/deployJava.js"></script>
      <script>
          var attributes = {code:'java2d.Java2DemoApplet.class',
              archive:'Java2Demo.jar', width:710, height:540};
          var parameters = { fontSize:16, permissions:'sandbox' };
          var version = '1.6';
          deployJava.runApplet(attributes, parameters, version);
      </script>
      • 在浏览器中打开DeployUsingNameValuePairs.html以查看 Java2D 小程序。


      • 使用jnlp_href参数在 JNLP 文件中指定部署选项
        作为属性名称值对传递的属性和参数(在这种情况下是jnlp_href)将被写入生成的标签中的属性和嵌套的标签中。以这种方式部署的小程序只能通过下一代 Java 插件软件运行。最好将小程序的宽度和高度指定为属性,如下所示:
        <script src="https://www.java.com/js/deployJava.js"></script>
        <script> 
            var attributes = { code:'java2d.Java2DemoApplet', width:710, height:540 }; 
            var parameters = { jnlp_href: 'java2d.jnlp' }; 
            deployJava.runApplet(attributes, parameters, '1.6'); 
        </script>
        • 在浏览器中打开DeployUsingJNLP.html以查看 Java2D 小程序。


        • 指定属性和参数名称值对以及 JNLP 文件
          通过使用 JNLP 部署的小程序只能在最终用户的浏览器上运行下一代 Java 插件软件。如果你希望你的小程序也在旧版 Java 插件软件上运行,请使用属性和参数名称值对以及 JNLP 文件指定部署选项。
        <script src="https://www.java.com/js/deployJava.js"></script>
        <script>  
            var attributes = {code:'java2d.Java2DemoApplet.class', 
                    archive:'Java2Demo.jar', width:710, height:540}; 
            var parameters = { fontSize:16, jnlp_href:'java2d.jnlp' }; 
            var version = '1.6' ; 
            deployJava.runApplet(attributes, parameters, version);      
        </script>

        如果一些部署选项在属性名称值对和 JNLP 文件中有不同的值,以下准则会很有帮助:

        • widthheight指定为属性名称值对(不在 JNLP 文件中)。
        • 将参数如imageboxbgcolor指定为参数名称值对(不在 JNLP 文件中)。这些参数在小程序启动过程中需要提前。
        • 在 JNLP 文件中,将codebase属性留空或指定绝对 URL。当codebase属性留空时,默认为包含 JNLP 文件的目录。
        • 如果小程序是使用 JNLP 文件启动的,则codecodebasearchive属性的值将从 JNLP 文件中获取。如果这些属性也分别作为属性名称值对指定,那么属性名称值对将被忽略。

        在浏览器中打开DeployUsingNameValuePairsAndJNLP.html以查看 Java2D 小程序。


        注意: 如果你看不到小程序在运行,你需要至少安装Java SE 开发工具包(JDK)7版本。


        下载源代码以进一步进行实验。

        在小程序标签中嵌入 JNLP 文件

        原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/embeddingJNLPFileInWebPage.html

        当使用 Java Network Launch Protocol (JNLP) 部署小程序时,Java 插件软件会在从网络下载 JNLP 文件后启动小程序。从 Java SE 7 版本开始,您可以通过将 JNLP 文件嵌入到网页中来减少小程序启动时间,从而避免第一次加载小程序时额外的网络请求。这将导致小程序在 Web 浏览器上快速启动。

        在网页中部署小程序时,可以将 Base64 编码的 JNLP 文件嵌入到 jnlp_embedded 参数中。 元素的属性应满足以下限制:

        • href 属性应包含相对路径。
        • 不应指定 codebase 属性。这意味着代码库将从加载小程序的网页的 URL 派生。

        以下步骤描述了如何在网页中嵌入 JNLP 文件以部署小程序。

        1. 为您的小程序创建一个JNLP文件。下面显示了一个示例文件。
        <?xml version="1.0" encoding="UTF-8"?>
        <!-- href attribute contains relative path;
             codebase attribute not specified -->
        <jnlp href="dynamictree_applet.jnlp">
            <information>
                <title>Dynamic Tree Demo</title>
                <vendor>Dynamic Team</vendor>
            </information>
            <resources>
                <!-- Application Resources -->
                <j2se version="1.7+" />
                <jar href=
                    "dist/applet_ComponentArch_DynamicTreeDemo/DynamicTreeDemo.jar" 
                     main="true" />
            </resources>
            <applet-desc 
                 name="Dynamic Tree Demo Applet"
                 main-class="appletComponentArch.DynamicTreeApplet"
                 width="300"
                 height="300">
             </applet-desc>
             <update check="background"/>
        </jnlp>
        1. 使用 Base64 方案对 JNLP 文件的内容进行编码。您可以使用任何 Base64 编码工具对 JNLP 文件进行编码。查看工具的用法以创建具有 Base64 编码的字符串。可以使用的一些工具和网站示例如下:
        1. 在网页中部署小程序时,指定 jnlp_embedded 参数,并将其值设置为 Base64 编码的 JNLP 字符串。确保只包含实际的 Base64 字节,不包含任何编码工具特定的头部或尾部。
        <script src="https://www.java.com/js/deployJava.js"></script>
        <script>
            var attributes = {} ;
            <!-- Base64 encoded string truncated below for readability -->
            var parameters = {jnlp_href: 'dynamictree_applet.jnlp',
                jnlp_embedded: 'PCEtLSANCi8qDQogKiBDb ... bmxwPg=='
            } ;
            deployJava.runApplet(attributes, parameters, '1.6');
        </script>
        1. 一些编码工具可能会将编码后的字符串包装成几个 76 列的行。要在 JavaScript 代码中使用这种多行属性值,请将属性值指定为一组连接的字符串。如果小程序直接使用 HTML 标签部署,则可以按原样包含多行属性值。

          在浏览器中打开AppletPage.html以查看通过在网页中嵌入 JNLP 文件启动的动态树演示小程序。


          注意: 如果您看不到小程序运行,请至少安装Java SE Development Kit (JDK) 7版本。



          注意: 如果您看不到示例运行,可能需要在浏览器中启用 JavaScript 解释器,以便部署工具包脚本能够正常运行。


          下载源代码以进一步进行实验的嵌入式 JNLP 示例。


相关文章
|
4天前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
21 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
9天前
|
存储 网络协议 Oracle
java教程
java教程【8月更文挑战第11天】
14 5
|
1月前
|
SQL 安全 Java
「滚雪球学Java」教程导航帖(更新2024.07.16)
《滚雪球学Spring Boot》是一个面向初学者的Spring Boot教程,旨在帮助读者快速入门Spring Boot开发。本专通过深入浅出的方式,将Spring Boot开发中的核心概念、基础知识、实战技巧等内容系统地讲解,同时还提供了大量实际的案例,让读者能够快速掌握实用的Spring Boot开发技能。本书的特点在于注重实践,通过实例学习的方式激发读者的学习兴趣和动力,并引导读者逐步掌握Spring Boot开发的实际应用。
42 1
「滚雪球学Java」教程导航帖(更新2024.07.16)
WXM
|
25天前
|
Oracle Java 关系型数据库
Java JDK下载安装及环境配置超详细图文教程
Java JDK下载安装及环境配置超详细图文教程
WXM
129 3
|
1月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
44 2
|
1月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
47 3
|
1月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
136 5
|
1月前
|
Java 数据安全/隐私保护
Java无模版导出Excel 0基础教程
经常写数据导出到EXCEL,没有模板的情况下使用POI技术。以此作为记录,以后方便使用。 2 工具类 样式工具: 处理工具Java接口 水印工具 导出Excel工具类 3 测试代码 与实际复杂业务不同 在此我们只做模拟 Controller Service 4 导出测试 使用Postman进行接口测试,没接触过Postman的小伙伴可以看我这篇博客Postman导出excel文件保存为文件可以看到导出很成功,包括水印 sheet页名称自适应宽度。还有一些高亮……等功能可以直接搜索使用
Java无模版导出Excel 0基础教程
|
1月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
43 6
|
1月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
27 2