2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
BIBLIOTHECA technica summaria:
①Java basics (encapsulation, reflexio, generica, jdbc)
Configuration file analysis (proprietates)
③httpclient (mitte http petitionem)
Fastjson et jsonpath processus data
Key puncta testng automated probatio compage
allure test fama
File-occasus-maven
Fastjson et jsonpath ambo usi sunt ad processum data.
Focus tentationis compage automation.
test fama allicere
fastjson processuum json chordarum et json vestit
Parse json chorda input parametri et para petitionibus subsequentibus
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson -->
com.alibaba
fastison
1.2.75
Post demptionem, videre potes fasciculos dependentiae automatice generatas.
Exempli gratia: logging in username et password postulat.
{"usoris", "qzcsbj", "password": "123456"}
Automationis compages datae fons, initus parametri sunt omnes chordae json, fastjson adhibendae sunt
Class.Method, haec methodus static
Quisque clavem in collectione est String
Filum json definitum nunc parsed et in tabula geographica positum est
Instructiones ut contenta chordae json in map
blog.csdnimg.cn/direct/ae6feeba2eae442f961df977a6c8eac1.jpeg)
Artus automationis compagem initializationem implicat, et quaedam operationes quae intus in notitia requirunt.Ad database operandum, debes scribere sql
Hic est json ordinatus.
[{"sqlNo":"1", "sq!":" eligere * ab utentibus ubi username='qzcsbj';,"},. "sqlNo":"2", "sql":" eligere * ab utentibus quibus nomen usoris ='test0001'}]
Hoc modum non expedit
Duos parametri transeamus, primus parameter est chorda dividenda, secundus parameter est fasciculus bytecode.
Solutio est: Parse primi parametri Stringe in Tabula
String sqlNo = (String)sql.get("sqlNo");
Contentum in unaquaque chorda json in objecto l encapsulare, ac methodos entitatis classi addere, et objectum directe. acquirere materiam sql. Automatio etiam haec encapsulationis indicio est. Id est encapsulare sql in rem;
Encapsulate proprietates ut privatas (sqlNo, sql), methodos acquirendi et ponendi, construendi methodos parameterizandi, ac methodi constructionis parametris addendi sunt, et reflexio methodos constructionis parameterless componet. Si parametros cum parametris tantum scribis nec parametros-liberos conditores scribere, error certus indicabitur supra entem genus scriptum est.
Optimize illud
Si elementum in obiecto encapsulatum est, mutatur ad genus a te ipso scriptum
Id est sql.class
Secundus modus supra est encapsulare singula in objecto hashMap, et hic encapsulare elementum unumquodque in SQL obiectum.
Adipisci attributa ab obiecto directe utendi modum
Haec methodus commodior est ac plures claves obtinere non debet.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mavenProject</groupId>
<artifactId>mavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
</dependencies>
</project>
sql classis
package com.zhou.demo;
public class Sql {
private String sql;
private String sqlNo;
public Sql() {
}
public Sql(String sql) {
this.sql = sql;
}
public Sql(String sql, String sqlNo) {
this.sql = sql;
this.sqlNo = sqlNo;
}
public void setSql(String sql) {
this.sql = sql;
}
public void setSqlNo(String sqlNo) {
this.sqlNo = sqlNo;
}
public String getSql() {
return sql;
}
public String getSqlNo() {
return sqlNo;
}
@Override
public String toString() {
return "sql{" +
"sql='" + sql + ''' +
", sqlNo='" + sqlNo + ''' +
'}';
}
}
package com.zhou.demo;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Set;
//需求:将json字符串转化成map,字符串:{"username":"qzcsbj", "password":"123456"}
public class Test {
public static void main(String[] args) {
String parameters="{"username":"qzcsbj", "password":"123456"}";
//先解析为JSONObject,然后转换为map
HashMap<String, String> map = new HashMap<String, String>();
// 解析json格式字符串为JSONObject(JSONObject是Map接口的一个实现类,和HashMap平级)
JSONObject jsonObject = JSONObject.parseObject(parameters);
// 将JSO\\\ NObject转换为map,先获取keys,先将keyset获取,集合里的每一个key都是String,通过遍历的key获取value,再放到map中
Set<String> keys= jsonObject.keySet();
for (String key:keys) {
map.put(key,jsonObject.getString(key));
}
//验证,获取Map中的key
Set<String> keys2 = map.keySet();
for (String key :keys2) {
System.out.println(key+"="+map.get(key));
}
}
}
package com.zhou.demo;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.List;
//JSON数组,每个元素是json字符串
public class Test02 {
public static void main(String[] args) {
String initsql="[n" + "{"sqlNo":"1","sql":"select * from users where username='qzcsbj';"},n" +
"{"sqlNo":"2","sql":"select * from users where username='tester00501';"}n" + "n" + "]";
/* //元素解析为Map
List<HashMap> sqls = JSONObject.parseArray(initsql,HashMap.class);
for (HashMap sql:sqls) {
System.out.println(sql);
String sqlNo = (String)sql.get("sqlNo");
String sql_ = (String)sql.get("sql");
System.out.println("sqlNo-"+sqlNo+",sql_-"+sql_);
}*/
//元素封装到对象
List<Sql> sqls = JSONObject.parseArray(initsql, Sql.class);
for (Sql sql:sqls) {
String sqlNo = sql.getSqlNo();
String sql_ = sql.getSql();
System.out.println("sqlNo-"+",sql_"+sql_);
}
}
}
Quia nunc, ante et retro fines separatur.
Backend plerumque redit json chordis
Si adfirmare vis, parse json solet.
Assertiones sunt plerumque codice + key negotium agri
Filum json est, sic uti debes jsonpath
blog.csdnimg.cn/5bdd9defd7db47b7a5934f79f9fd0ceb.png)
Confirmare oportet an clientelae receptae sunt
Haec variabilis hic responsio est campus postquam feliciter login rediit.
blog.csdnimg.cn/a20e89ee243c43f69a1b4e1c3a97b89b.png)
Transi in definito agro responsio
Interface automation in processus dependens notitia
A fronte huius versus sume signum, quod et $.
Obtenta, si variabilis globalis est, in variabili globali servari potest.
Si vis accipere assertionem et inde pervenit
Fac aliam assertionem
In compage automation, petitiones a codice scripto missae sunt, quo modo debes uti httpclient, bibliothecam a Java comparatam ut cum servo penitus correspondeat.
Oportet transire id
Ex bibliotheca videre possumus idis esse 259 .
In tabella notitia, parametri omnes in chordas json concatenatae sunt, ergo id=599 etiam in chordis json concatenatur.
Hic, 259 in duplici virgulis pone, ut sponte careat.
peto: http://47.108.153.47:18089/qzcsbj/user/findById?id=259
?Directe splice parametri postea
Plures etiam valores considerandi sunt: http://47.108.153.47:18089/qzcsbj/user/findById?id=259&name=jack
Supra modum URL concatenet ac parametri ad petitionem mittendi.
Transire url in
Hic habes httpget petitionem objecti
Classis abstracta CloseableHttpClient instrumentum ad HttpClient, interface Closeable
Polymorphismus adhiberi potest, et genus obiecti demonstrat ad genus parentis referendum (interfacies a genere parentis effectam)
Eventus res superius definitur
Nunc
http://47.108.153.47:18089/qzcsbj/user/login
url, roga ambitum parametri, peto capitis
Hi parametri e lima notitiarum in compage automationis obtinentur.
Define res
reditus res
Transi url
Si conditorem spectes, Filum transire et conditorem alterum exprimere potes.
Postulatio suprascripta est missa: petitio capitis et notitia mittenda sunt omnia definita.
Subclass res demonstrat parentis genus referat