文档章节

Windows下部署Appium教程(Android App自动化测试框架搭建)

outcat
 outcat
发布于 2015/08/12 18:15
字数 2920
阅读 11767
收藏 20

----------------------------------------------appium的一些基本概念----------------------------------------------

        appium的核心其实是一个暴露了一系列REST API的server。

这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。

在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。

如何部署和使用Appium,一起来看看吧!

---------------------------------------------------安装各种组件----------------------------------------------------

一、安装nodejs0.8版本及以上

        地址:https://nodejs.org/download/

        下载合适自己机型的版本,Windows下安装很简单,一直下一步;

        验证安装是否成功,Win+R>>cmd->>node - v,如出现类似以下提示,证明安装成功!

        

二、安装配置Java的JDK(Java软件开发工具包

        地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

        下载合适自己机型的版本,Windows下安装很简单,一直下一步;

        

        安装完成后,在安装目录下可以看到两个文件夹,一个是jdk,一个是jre;

        

        打开jdk的安装目录下的bin目录,里面有许多后缀名为exe的可执行程序,这些都是JDK包含的工具。通过配置JDK的环境变量,我们可以方便地调用这些工具及它们的命令:

        javac:Java编译器,将源代码转成字节码。

        jar:打包工具,将相关的类文件打包成一个文件。

        javadoc:文档生成器,从源码注释中提取文档。

        jdb:debugger,调试查错工具。

        java:运行编译后的java程序。

        

        1、JAVA_HOME

        新建一个名叫“JAVA_HOME”的用户变量,如不会请参考:http://my.oschina.net/u/563250/blog/490614

        变量值为JDK的安装目录,笔者为    C:\Program Files\Java\jdk1.8.0_51

        创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径;

        2、PATH

        在已有的环境变量PATH变量值的最后追加     ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

        3、CLASSPATH

         新建一个名叫“CLASSPATH”的用户变量, 变量值为    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

        注意变量值字符串前面有一个"."表示当前目录,设置CLASSPATH 的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包;

        验证安装是否成功,Win+R>>cmd->>java -version,如出现类似以下提示,证明安装成功!

        

三、安装配置Android的SDK(Android软件开发工具包

        地址:http://developer.android.com/sdk/installing/index.html

        仅下载SDK TOOLS安装工具即可,不必安装ANDROID STUDIO,我们的测试代码写在Eclipse里;

        

        安装完成后,配置环境变量:

        1、ANDROID_HOME

        新建一个名叫“ANDROID_HOME”的用户变量

        变量值为Android SDK的安装目录,笔者为    C:\Program Files (x86)\Android\android-sdk

        2、PATH

         在已有的环境变量PATH变量值的最后追加     ;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

         在安装目录或开始菜单中找到SDK Manager.exe并打开,工具会自动检测系统当前安了哪些SDK工具,并获取各个版本可安装的SDK,默认情况下只安装了Tools下的Android SDK Tools;

        

        获取可安装的SDK版本时,国内有墙,有时候会出现获取失败的情况,如下图:

        

        可以通过如下设置解决问题,选择Tools->>Options打开Android SDK Manager - Settings

        将HTTP Proxy Server和HTTP Proxy Port,连接服务器使用的代理地址和端口分别修改为“mirrors.opencas.cn”“80”;

        若该地址仍然无法解决问题不正确,请参考该网站获得更多代理地址,或从该网站上直接手动下载:http://www.androiddevtools.cn/

        

        修改代理地址和端口后,选择Packages->>Reload,重新获取,等待Android SDK Tools下方提示Done loading packages,即加载完成。选择需要安装的SDK,Appium官方推荐API 17及以上的版本都支持,可以任意安装一个API 17及以上的版本,选择右侧的Install xx packages;

        

        验证安装是否成功,Win+R>>cmd->>android -h,如出现类似以下提示,证明安装成功!(当然,已经可以正常运行Android SDK Tools,肯定是安装成功了,不妨再检查一下

        

三、安装Appium

        地址:http://appium.io/

        点击Download Appium,默认就下载的是AppiumForWindows安装包,下载完成后,解压安装包,运行appium-installer.exe进行安装

        

        注:还可以使用node.js的模块管理工具npm,输入命令在线安装(Win+R->>cmd->>npm install -g appium),但在线安装失败的几率比较大,貌似是因为网络不稳或权限问题无法解压,还是推荐直接下载Windows安装包;

        安装完成后,配置环境变量:

        1、PATH

        在已有的环境变量PATH变量值的最后追加Appium的安装bin目录,笔者为    C:\Program Files (x86)\Appium\node_modules\.bin

        验证安装是否成功,Win+R>>cmd->>appium,如出现类似以下提示,证明安装成功!

        

四、安装Eclipse

        地址:http://www.eclipse.org/downloads/

        选择Eclipse IDE for Java EE Developers,下载合适自己机型的IDE,Eclipse不需要安装,直接将下载的安装包解压,并打开eclipse.exe,选择一个工作目录即可;

        

---------------------------------------------------测试前的准备----------------------------------------------------

一、启动一个Android模拟器或者连接上一个API 17以上的android真机

        (1)打开Android SDK Tools中的AVD Manager,点击右侧的create,新建一个新的AVD(Android Virtual Device),设置AVD的各个属性,点击OK;

        注:若SDK下载安装完整,但CPU/ABI一栏无法选择,被灰掉或禁用,则可能是SDK安装目录太长,将SDK拷贝到别的目录,再次打开AVD Manager.exe,新建一个AVD,CPU/ABI一栏就可以选择了;

        

        (2)点击右侧的start,选择Launch,启动模拟器;

        

        (3)默认为锁定状态,一定要滑动屏幕解锁,否则Appium无法启动被测试应用程序;

            

二、打开Appium

    双击桌面上Appium图标,点击右上角的Launch the Appium Node Server按钮;

    

    或:Win+R->>cmd->>appium,启动Appium Server服务(和上诉方法二选一即可);

三、在Eclipse中配置Selenium、Appium类库

(1)下载Selenium类库

    client地址:http://selenium-release.storage.googleapis.com/2.44/selenium-java-2.44.0.zip 

    server地址:http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar

    (确认2014.11.14有效,如无效请访问http://docs.seleniumhq.org/download/ 进行下载)

(2)下载Appium java版类库

    地址:http://appium.io/downloads.html

    选择java,下载jar包;

    

    

(3)在Eclipse中导入

        打开Eclipse,新建一个java Project

        

   在新项目上,新建一个Folder,命名为“lib”,将下载的三个类库“selenium-java-2.44.0.jar”、“selenium-server-standalone-2.44.0.jar”、“java-client-3.1.0.jar”,从文件夹中直接拖放到“lib”下;

    

    在项目上右键->>Build Path->>Configure Build Path->>Libraries->>Add JARs(添加Java包),将刚刚拖进项目的3个jar包,选择进来;

    

-------------------------------------------------------开始测试--------------------------------------------------------

    (1)在项目的src下,新建一个package,在package下新建一个class(笔者的命名分别为“appiumtest”和“demo2”);

    

    在类中输入以下代码,代码内容为,启动Android模拟器上自带的Calculator计算器,并分别点击“1+2=”;

package appiumtest;//package名

import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class demo2 {

private AndroidDriver driver;

@Before
public void calc() throws Exception {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "");// 这句不是必须的
    capabilities.setCapability("deviceName", "Android Emulator");
    capabilities.setCapability("platformVersion", "4.2.2");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("appPackage", "com.android.calculator2");
    capabilities.setCapability("appActivity", ".Calculator");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
}

@After
public void tearDown() throws Exception {
    driver.quit();
}

@Test
public void add() {
    driver.findElementByName("1").click();
    driver.findElementByName("+").click();
    driver.findElementByName("2").click();
    driver.findElementByName("=").click();
    driver.quit();
    }
}

    (2)在项目上右键->>Run As->>JUnit Test;

    

(3)测试用例正在运行,查看Appium,输出了很多运行的日志,查看模拟器,Appium控制模拟器打开了自带的计算器,并分别点击“1+2=”,至此部署Appium测试环境已完成并测试成功!接下来就可以开发真正的自动化测试用例啦!


--------------------------------------分割线(Desired Capabilities详解)-------------------------------------

        Desired Capabilities在启动session的时候是必须提供的,它本质上是key value的对象,它告诉appium server这样一些事情:

    1、本次测试是启动浏览器还是启动移动设备?

    2、是启动andorid还是启动ios?

    3、启动android时,app的package是什么?

    4、启动android时,app的activity是什么?

    Appium的Desired Capabilities是扩展了webdriver的Desired Capabilities的,下面的一些通用配置是需要指定的:

Capability名称 描述 可能的值举例
automationName 使用哪种自动化引擎(默认:Appium) Appium   ,Selendroid
platformName 使用哪种移动平台 iOS,Android,FirefoxOS
platformVersion 移动平台版本 7.1,4.4
deviceName 启动哪种设备?真机还是模拟器 iPhone   Simulator, iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy   S4,etc…. On iOS,this should be one of the valid devices returned by   instruments with instruments -s devices. On Android this capability is   currently ignored.
app 应用(.ipa   .apk .zip)的绝对路径或远程的Http URL /abs/path/to/my.apk   , http://myapp.com/app.ipa
browserName 移动浏览器的名称(如果被测应用程序已安装到移动设备,则可设置为空字符串) ‘Safari’   for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android
newCommandTimeout 客户端退出和结束会话之前,Appium等待从客户端发来一个新命令的时间,即超时时间(秒) 60
autoLaunch 是否自动安装和启动被测app(默认:true) true,   false
language (Sim/Emu-only)   Language to set for the simulator / emulator fr
locale (Sim/Emu-only)   Locale to set for the simulator / emulator fr_CA
udid 物理机的id 1ae203187fc012g
orientation (Sim/Emu-only)   start in a certain orientation LANDSCAPE,PORTRAIT
autoWebview Move   directly into Webview context(默认:false) true,   false
noReset 在测试前不重置app的状态(默认:false) true,   false
fullReset IOS:删除整个模拟器目录;Android:通过卸载app的方式重置app的状态,而不是仅清除app的数据,在Android设备上,当测试结束后,也会彻底移除app(默认:false) true, false

下面这些属性是android平台特定的(还有很多没有列出来的可以查看:http://appium.io/documentation.html):

Capability名称 描述 可能的值举例
appActivity 待测试的app的Activity名字,原生app的话要在activity前加个"." MainActivity,   .Settings
appPackage 待测试的app的java   package com.example.android.myApp,   com.android.settings


--------------------------------------分割线(工具的使用)-------------------------------------

通过上一节我们发现,要获取app的package和activity名字,要用什么工具呢?

一、monitor.bat

        该文件位于SDK安装目录tools下,如笔者在“C:\Program Files (x86)\Android\android-sdk\tools”下,双击运行monitor.bat即可运行,该工具可以帮我们找到android控件的content-description,为以后的find_element_by_accessibility_id 定位方法做参数使用,也可查看被测app的appPackage,如下图。

    

二、uiautomatorviewer.bat

        该文件位于SDK安装目录tools下,如笔者在“C:\Program Files (x86)\Android\android-sdk\tools”下,双击uiautomatorviewer.bat即可运行,该工具主要用来查看控件的属性,比如resource id,class name等,也可查看被测app的appPackage(Desired Capabilities中使用)。

        使用方法(以计算器为例):将模拟器的打开,点击左上角绿色的Android小图标(Device ScreenShot),可以为当前界面UI创建一个带有控件信息的截图,将鼠标放在想要的地方,即可看到控件的相关属性:

   



© 著作权归作者所有

outcat
粉丝 11
博文 22
码字总数 23682
作品 0
武汉
私信 提问
加载中

评论(26)

x
xhgd
请问:capabilities.setCapability("appActivity", ".Calculator");这句中的.Calculator表示的是什么意思?
x
xhgd

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效

引用来自“xhgd”的评论

重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?

引用来自“outcat”的评论

不需要换,127.0.0.1就是指你的计算机
你可以关掉图形界面的Appium,在cmd中输入appium,回车
然后运行代码,看看cmd里面有没有日志

引用来自“xhgd”的评论

我在cmd里面看有日志的。

引用来自“outcat”的评论

那你就在cmd里看日志就行了,两边日志是一样的
具体为什么appium不显示日志,也许是appium for windows本身就有BUG
好的,谢谢。
outcat
outcat 博主

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效

引用来自“xhgd”的评论

重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?

引用来自“outcat”的评论

不需要换,127.0.0.1就是指你的计算机
你可以关掉图形界面的Appium,在cmd中输入appium,回车
然后运行代码,看看cmd里面有没有日志

引用来自“xhgd”的评论

我在cmd里面看有日志的。
那你就在cmd里看日志就行了,两边日志是一样的
具体为什么appium不显示日志,也许是appium for windows本身就有BUG
x
xhgd

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效

引用来自“xhgd”的评论

重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?

引用来自“outcat”的评论

不需要换,127.0.0.1就是指你的计算机
你可以关掉图形界面的Appium,在cmd中输入appium,回车
然后运行代码,看看cmd里面有没有日志
我在cmd里面看有日志的。
outcat
outcat 博主

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效

引用来自“xhgd”的评论

重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?
如果你环境变量配置正确的话,cmd中输入appium,会出现“Welcome to Appium v1.4.0”等提示
outcat
outcat 博主

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效

引用来自“xhgd”的评论

重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?
不需要换,127.0.0.1就是指你的计算机
你可以关掉图形界面的Appium,在cmd中输入appium,回车
然后运行代码,看看cmd里面有没有日志
x
xhgd

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了

引用来自“outcat”的评论

我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效
重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?
x
xhgd
重启过了,还是不行。我想问一下driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);这个里面的地址要换成我的IP地址么?
outcat
outcat 博主

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?

引用来自“xhgd”的评论

package名和class名改了,模拟器上也跟着动了
我的日志设置是,所有的logging选项,都没有打钩,这样是有日志的
实在不行,你可以重启一下Appium。或者重启下电脑,可能是什么配置没生效
x
xhgd

引用来自“xhgd”的评论

我想请教一下,为什么我的appium下面没有显示日志呢?

引用来自“outcat”的评论

可能是你的日志没有开启。Appium左上角有个设置按钮,点卡,里面有logging选项,设置成开启
另外,只有运行测试代码的时候,Appium工作时,才会输出日志

引用来自“xhgd”的评论

我是直接复制你的代码的,要改什么东西吗?

引用来自“outcat”的评论

package名,class名要和你自己定义的改成一致的
你运行了代码,模拟器上有没有跟着动?
package名和class名改了,模拟器上也跟着动了
Python3_Appium_QQ 实战

Python3_Appium实战 -海盐 APPium移动自动化测试 样例中 测试的 app 使用的是 QQ; Appium介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合...

海盐宝宝
2018/08/16
120
0
从0到1搭建移动App功能自动化测试平台(0):背景介绍和平台规划

本文作者:伯乐在线 -debugtalk 。未经作者许可,禁止转载! 欢迎加入伯乐在线专栏作者。 背景 最近新加入DJI的某项目组(以下均已M指代),需要从零开始搭建功能自动化测试平台。 简单地说,...

伯乐在线
2016/05/20
0
0
10 个免费的移动 App 测试框架 (Android/iOS)

功能测试框架 #1: KIF for iOS KIF 的全称是 Keep It Functional ,来自 Square。该测试框架只支持 iOS,所有测试使用 Objective-C 编写,简化了 App 开发者使用。 #2: Fliptest – iOS 的应...

oschina
2013/09/20
15.5K
4
Appium自动化测试系列1 - Appium环境的安装与配置

之前一直使用Robotium做为Android App测试框架的底层基础,受限于跨进程,以及控件加载的一些限制,很多特殊场景无法覆盖,决定尝试久闻的Appium(它也差不多成熟了),顺便做个笔记,方便其...

冬吃萝卜
2015/01/27
26K
0
移动应用测试框架—Calabash Android 简介

  什么是 Calabash?    Calabash 是一个自动化测试框架,它可以测试?android?和 iOS 原生应用和混合应用。    它有:    calabash-android    calabash-ios    主页:? http://...

糖糖豆豆
2014/12/22
192
0

没有更多内容

加载失败,请刷新页面

加载更多

详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
9
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
4
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
昨天
6
0
HTML小知识点

HTML小知识点 html标签有几个可以逃过同源策略 <link rel="stylesheet" type="text/css" href="*.css"> <script><script/> attribute和property有什么区别 attribute和property有什么区别 im......

sansenlian
昨天
5
0
jar 更新部分文件

C:\Program Files (x86)\Java\jdk1.8.0_102\bin>jar -hIllegal option: hUsage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...Options: -c c......

圣洁之子
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部