τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Σύνοψη στοίβας τεχνολογίας:
① Βασικά στοιχεία Java (ενθυλάκωση, αναστοχασμός, γενικά, jdbc)
②Ανάλυση αρχείου διαμόρφωσης (ιδιότητες)
③httpclient (αποστολή αιτήματος http)
④ Τα δεδομένα Fastjson και jsonpath επεξεργάζονται
⑤Βασικά σημεία του αυτοματοποιημένου πλαισίου δοκιμών
⑥ έκθεση δοκιμής γοητείας
Αρχείο—ρυθμίσεις—maven
Το Fastjson και το jsonpath χρησιμοποιούνται και τα δύο για την επεξεργασία δεδομένων.
Το επίκεντρο της δοκιμής πλαισίου αυτοματισμού.
έκθεση δοκιμής γοητείας
Το fastjson επεξεργάζεται συμβολοσειρές json και πίνακες json
Αναλύστε τις παραμέτρους εισαγωγής συμβολοσειράς json και προετοιμαστείτε για επόμενα αιτήματα
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson -->
com.alibaba
fastison
1.2.75
Μετά τη λήψη, μπορείτε να δείτε τα πακέτα εξαρτήσεων που δημιουργούνται αυτόματα.
Για παράδειγμα, η σύνδεση απαιτεί όνομα χρήστη και κωδικό πρόσβασης.
{“όνομα χρήστη”:“qzcsbj”, “password”:“123456”}
Πηγή δεδομένων πλαισίου αυτοματισμού, οι παράμετροι εισόδου είναι όλες συμβολοσειρές json, το fastjson πρέπει να χρησιμοποιηθεί
Class.Method, αυτή η μέθοδος είναι στατική
Κάθε κλειδί στη συλλογή είναι String
Η συμβολοσειρά json που ορίζεται τώρα έχει αναλυθεί και τοποθετηθεί στον Χάρτη
Οδηγίες για να τοποθετήσετε τα περιεχόμενα της συμβολοσειράς json στον χάρτη
blog.csdnimg.cn/direct/ae6feeba2eae442f961df977a6c8eac1.jpeg)
Το πλαίσιο αυτοματισμού περιλαμβάνει ένα πλαίσιο αρχικοποίησης και ορισμένα απαιτούν λειτουργίες στα δεδομένα που υπάρχουν στο εσωτερικό του.Για να λειτουργήσετε τη βάση δεδομένων, πρέπει να γράψετε sql
Εδώ υπάρχει ένας πίνακας json. Στον πίνακα, κάθε στοιχείο είναι μια συμβολοσειρά json, η οποία περιέχει δεδομένα βασικής τιμής.
[{"sqlNo":"1","sq!":"επιλέξτε * από χρήστες όπου όνομα χρήστη='qzcsbj';"},."sqlNo":"2","sql": "επιλέξτε * από χρήστες όπου όνομα χρήστη ='test00501';"}]
Αυτή η μέθοδος δεν ενδείκνυται
Περάστε δύο παραμέτρους, η πρώτη παράμετρος είναι η συμβολοσειρά που πρόκειται να αναλυθεί και η δεύτερη παράμετρος είναι το αρχείο bytecode.
Η λύση είναι: αναλύστε την πρώτη παράμετρο String σε χάρτη
String sqlNo = (String)sql.get("sqlNo");
Ενσωματώστε το περιεχόμενο σε κάθε συμβολοσειρά json σε ένα αντικείμενο l, προσθέστε μεθόδους get και set στην κλάση οντοτήτων, απευθείας object.get και αποκτήστε το περιεχόμενο του sql. Ο αυτοματισμός αναφέρεται επίσης σε αυτήν την ενθυλάκωση. Δηλαδή να ενσωματώσουμε την sql σε ένα αντικείμενο,
Ενθυλακώστε τις ιδιότητες ως ιδιωτικές (sqlNo, sql), παρέχετε μεθόδους λήψης και ρύθμισης, πρέπει να προστεθούν μέθοδοι παραμετροποιημένης κατασκευής και μέθοδοι κατασκευής χωρίς παραμέτρους και η αντανάκλαση θα προσαρμόσει τις μεθόδους κατασκευής χωρίς παραμέτρους. Εάν γράψετε μόνο τον κατασκευαστή χωρίς παραμέτρους χωρίς να γράψετε τον κατασκευαστή χωρίς παραμέτρους, θα αναφερθεί σίγουρα ένα σφάλμα Για να εκτυπώσετε το αποτέλεσμα συμβολοσειράς, πρέπει να προσθέσετε τη μέθοδο toString(), διαφορετικά θα εκτυπωθεί η διεύθυνση του αντικειμένου. Η παραπάνω κατηγορία οντοτήτων έχει γραφτεί.
Βελτιστοποιήστε το ξανά
Εάν το στοιχείο είναι ενσωματωμένο σε ένα αντικείμενο, αλλάζει σε μια κλάση που γράφτηκε από τον εαυτό σας.class
Δηλαδή sql.class
Η δεύτερη μέθοδος παραπάνω είναι να ενθυλακώσετε κάθε στοιχείο σε ένα αντικείμενο hashMap και εδώ είναι να ενθυλακώσετε κάθε στοιχείο σε ένα αντικείμενο sql.
Λάβετε χαρακτηριστικά από το αντικείμενο απευθείας χρησιμοποιώντας τη μέθοδο get
Αυτή η μέθοδος είναι πιο βολική και δεν χρειάζεται να αποκτήσετε πολλά κλειδιά.
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
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_);
}
}
}
Επειδή αυτή τη στιγμή, το έργο διαχωρίζεται από το μπροστινό και το πίσω άκρο.
Το backend επιστρέφει γενικά συμβολοσειρές json
Εάν θέλετε να κάνετε ισχυρισμούς, συνήθως αναλύετε το json Μετά την ανάλυση, συνήθως κάνετε ισχυρισμούς μόνο σε βασικά πεδία.
Οι ισχυρισμοί είναι γενικά επιχειρηματικά πεδία κωδικού + κλειδιού
Είναι μια συμβολοσειρά json, επομένως πρέπει να χρησιμοποιήσετε jsonpath
blog.csdnimg.cn/5bdd9defd7db47b7a5934f79f9fd0ceb.png)
Πρέπει να επιβεβαιωθεί εάν έχουν γίνει λήψη των εξαρτήσεων
Αυτή η μεταβλητή εδώ είναι το πεδίο απόκρισης που επιστρέφεται μετά την επιτυχή σύνδεση.
blog.csdnimg.cn/a20e89ee243c43f69a1b4e1c3a97b89b.png)
Περάστε στην καθορισμένη απόκριση πεδίου
Αυτοματοποίηση διεπαφής για επεξεργασία εξαρτώμενων δεδομένων
Πάρτε το διακριτικό από το μπροστινό μέρος αυτής της γραμμής, το οποίο είναι επίσης $.
Μετά την απόκτησή της, εάν πρόκειται για καθολική μεταβλητή, μπορεί να αποθηκευτεί στην καθολική μεταβλητή.
Αν θέλεις να πάρεις τον ισχυρισμό και μετά να τον πάρεις
Κάνε έναν άλλο ισχυρισμό
Στο πλαίσιο αυτοματισμού, τα αιτήματα αποστέλλονται γράφοντας κώδικα, πράγμα που σημαίνει ότι πρέπει να χρησιμοποιήσετε το httpclient, μια βιβλιοθήκη που παρέχεται από την Java για αλληλεπίδραση με τον διακομιστή.
Πρέπει να περάσετε το αναγνωριστικό
Από τη βιβλιοθήκη, μπορούμε να δούμε ότι το αναγνωριστικό είναι 259
Στο αρχείο δεδομένων, όλες οι παράμετροι συνενώνονται σε συμβολοσειρές json, επομένως το id=259 συνδέεται επίσης σε συμβολοσειρές json.
Εδώ, βάλτε το 259 σε διπλά εισαγωγικά για να ξεφύγετε αυτόματα.
λάβετε αίτημα: http://47.108.153.47:18089/qzcsbj/user/findById?id=259
?Συνδέστε απευθείας τις παραμέτρους αργότερα
Υπάρχουν επίσης πολλές τιμές που πρέπει να λάβετε υπόψη: http://47.108.153.47:18089/qzcsbj/user/findById?id=259&name=jack
Τα παραπάνω θα συνδυάσουν τη διεύθυνση url της παραμέτρου και τις παραμέτρους για την αποστολή του αιτήματος λήψης Μετά τη δημιουργία, πρέπει να δημιουργήσετε ένα αντικείμενο αίτησης λήψης.
Περάστε το url
Εδώ λαμβάνετε το αντικείμενο αιτήματος httpget
Η αφηρημένη κλάση CloseableHttpClient υλοποιεί τη διεπαφή HttpClient, Closeable
Ο πολυμορφισμός μπορεί να χρησιμοποιηθεί και το αντικείμενο υποκλάσης οδηγεί στην αναφορά γονικής κλάσης (η διεπαφή που υλοποιείται από τη γονική κλάση)
Το αποτέλεσμα res ορίζεται παραπάνω
Τώρα αμέσως
http://47.108.153.47:18089/qzcsbj/user/login
url, παράμετροι παραμέτρων αιτήματος, κεφαλίδες αιτημάτων
Αυτές οι παράμετροι λαμβάνονται από αρχεία δεδομένων στο πλαίσιο αυτοματισμού.
Ορίστε το res
επιστροφή ανάλογ
Διεύθυνση URL πρόσβασης
Αν κοιτάξετε τον κατασκευαστή, μπορείτε να περάσετε το String και να καθορίσετε τον δεύτερο κατασκευαστή.
Το παραπάνω είναι το αίτημα ανάρτησης που εστάλη: η κεφαλίδα του αιτήματος και τα δεδομένα που θα σταλούν είναι όλα καθορισμένα.
Το αντικείμενο υποκλάσης οδηγεί στην αναφορά γονικής κλάσης