selenium 版本3.12.0 & JDK1.8
1)预上传脚本
- 剔除java 脚本中package 包名
- 更改suite.xml 脚本中的参数源写法
<parameter name="url" value="http://${hip}:${hport}/login.html" /> <parameter name="username" value="${username}" /> <parameter name="passwd" value="${passwd}" />
2)提供java 脚本 编译依赖包
使用mvn 命令从pom 文件中提取出用例脚本需要用到的依赖包
mvn dependency:copy-dependencies -DoutputDirectory=dependency_lib
3)编译java 文件,切换到java 脚本所在目录
javac -cp /*/TestNGlib/*: *.java
4)执行脚本命令:
java -Dusername=*** -Dpasswd=*** -Dhip=*** -Dhport=*** -cp /*/TestNGlib/*: org.testng.TestNG *.xml -d /*/test-output
5)修改build.xml文件的内容
<?xml version="1.0"?> <project name="ant-jmeter" default="all"> <description> Sample build file for use with ant-jmeter.jar See http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php To run a test and create the output report: ant -Dtest=script To run a test only: ant -Dtest=script run To run report on existing test output ant -Dtest=script report The "script" parameter is the name of the script without the .jmx suffix. Additional options: -Dshow-data=y - include response data in Failure Details -Dtestpath=xyz - path to test file(s) (default user.dir). N.B. Ant interprets relative paths against the build file -Djmeter.home=.. - path to JMeter home directory (defaults to parent of this build file) -Dreport.title="My Report" - title for html report (default is 'Load Test Results') </description> <property name="testpath" value="${user.dir}"/> <property name="jmeter.home" value="${basedir}/.."/> <property name="report.title" value="Load Test Results"/> <!-- Name of test (without .jmx) --> <property name="test" value="Test"/> <!-- Should report include response data for failures? --> <property name="show-data" value="n"/> <property name="format" value="2.1"/> <condition property="style_version" value="_21"> <equals arg1="${format}" arg2="2.1"/> </condition> <condition property="funcMode"> <equals arg1="${show-data}" arg2="y"/> </condition> <condition property="funcMode" value="false"> <not> <equals arg1="${show-data}" arg2="y"/> </not> </condition> <!-- Allow jar to be picked up locally --> <path id="jmeter.classpath"> <fileset dir="${basedir}"> <include name="ant-jmeter*.jar"/> </fileset> </path> <taskdef name="jmeter" classpathref="jmeter.classpath" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/> <target name="all" depends="run,report"/> <target name="run"> <echo>funcMode = ${funcMode}</echo> <delete file="${testpath}/${test}.html"/> <jmeter jmeterhome="${jmeter.home}" testplan ="${testpath}/${test}.jmx" resultlog="${testpath}/${test}.jtl"> <!-- Force suitable defaults --> <property name="jmeter.save.saveservice.output_format" value="xml"/> <property name="jmeter.save.saveservice.assertion_results" value="all"/> <property name="jmeter.save.saveservice.bytes" value="true"/> <property name="file_format.testlog" value="${format}"/> <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/> <!-- 增加入参的变量 --> <property name="host" value="${host}" /> <property name="port" value="${port}" /> <property name="dbUrl" value="${dbUrl}" /> <property name="dbAccount" value="${dbAccount}" /> <property name="dbPwd" value="${dbPwd}" /> </jmeter> </target> <property name="lib.dir" value="${jmeter.home}/lib"/> <!-- Use xalan copy from JMeter lib directory to ensure consistent processing with Java 1.4+ --> <path id="xslt.classpath"> <fileset dir="${lib.dir}" includes="xalan*.jar"/> <fileset dir="${lib.dir}" includes="serializer*.jar"/> </path> <target name="report" depends="xslt-report,copy-images"> <echo>Report generated at ${report.datestamp}</echo> </target> <target name="xslt-report" depends="_message_xalan"> <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp> <xslt classpathref="xslt.classpath" force="true" in="${testpath}/${test}.jtl" out="${testpath}/${test}.html" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> <param name="showData" expression="${show-data}"/> <param name="titleReport" expression="${report.title}"/> <param name="dateReport" expression="${report.datestamp}"/> </xslt> </target> <!-- Copy report images if needed --> <target name="copy-images" depends="verify-images" unless="samepath"> </target> <target name="verify-images"> <condition property="samepath"> <equals arg1="${testpath}" arg2="${basedir}" /> </condition> </target> <!-- Check that the xalan libraries are present --> <condition property="xalan.present"> <and> <!-- No need to check all jars; just check a few --> <available classpathref="xslt.classpath" classname="org.apache.xalan.processor.TransformerFactoryImpl"/> <available classpathref="xslt.classpath" classname="org.apache.xml.serializer.ExtendedContentHandler"/> </and> </condition> <target name="_message_xalan" unless="xalan.present"> <echo>Cannot find all xalan and/or serialiser jars</echo> <echo>The XSLT formatting may not work correctly.</echo> <echo>Check you have xalan and serializer jars in ${lib.dir}</echo> </target> </project>